home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / GL / glxproto.h < prev    next >
Encoding:
C/C++ Source or Header  |  2007-10-27  |  76.1 KB  |  2,604 lines

  1. #ifndef _GLX_glxproto_h_
  2. #define _GLX_glxproto_h_
  3.  
  4. /* $XFree86: xc/include/GL/glxproto.h,v 1.6 2003/09/28 20:14:58 alanh Exp $ */
  5. /*
  6. ** License Applicability. Except to the extent portions of this file are
  7. ** made subject to an alternative license as permitted in the SGI Free
  8. ** Software License B, Version 1.1 (the "License"), the contents of this
  9. ** file are subject only to the provisions of the License. You may not use
  10. ** this file except in compliance with the License. You may obtain a copy
  11. ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
  12. ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
  13. **
  14. ** http://oss.sgi.com/projects/FreeB
  15. **
  16. ** Note that, as provided in the License, the Software is distributed on an
  17. ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
  18. ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
  19. ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
  20. ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
  21. **
  22. ** Original Code. The Original Code is: OpenGL Sample Implementation,
  23. ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
  24. ** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
  25. ** Copyright in any portions created by third parties is as indicated
  26. ** elsewhere herein. All Rights Reserved.
  27. **
  28. ** Additional Notice Provisions: The application programming interfaces
  29. ** established by SGI in conjunction with the Original Code are The
  30. ** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
  31. ** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
  32. ** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
  33. ** Window System(R) (Version 1.3), released October 19, 1998. This software
  34. ** was created using the OpenGL(R) version 1.2.1 Sample Implementation
  35. ** published by SGI, but has not been independently verified as being
  36. ** compliant with the OpenGL(R) version 1.2.1 Specification.
  37. */
  38.  
  39. #include <GL/glxmd.h>
  40.  
  41. /*****************************************************************************/
  42.  
  43. /*
  44. ** Errrors.
  45. */
  46. #define GLXBadContext        0
  47. #define GLXBadContextState    1
  48. #define GLXBadDrawable        2
  49. #define GLXBadPixmap        3
  50. #define GLXBadContextTag    4
  51. #define GLXBadCurrentWindow    5
  52. #define GLXBadRenderRequest    6
  53. #define GLXBadLargeRequest    7
  54. #define GLXUnsupportedPrivateRequest    8
  55. #define GLXBadFBConfig        9
  56. #define GLXBadPbuffer        10
  57. #define GLXBadCurrentDrawable    11
  58. #define GLXBadWindow        12
  59.  
  60. #define __GLX_NUMBER_ERRORS 13
  61.  
  62. /*
  63. ** Events.
  64. ** __GLX_NUMBER_EVENTS is set to 17 to account for the BufferClobberSGIX
  65. **  event - this helps initialization if the server supports the pbuffer
  66. **  extension and the client doesn't.
  67. */
  68. #define GLX_PbufferClobber    0
  69.  
  70. #define __GLX_NUMBER_EVENTS 17
  71.  
  72. #define GLX_EXTENSION_NAME    "GLX"
  73. #define GLX_EXTENSION_ALIAS    "SGI-GLX"
  74.  
  75. #define __GLX_MAX_CONTEXT_PROPS 3
  76.  
  77. #ifndef GLX_VENDOR
  78. #define GLX_VENDOR        0x1
  79. #endif
  80. #ifndef GLX_VERSION
  81. #define GLX_VERSION        0x2
  82. #endif
  83. #ifndef GLX_EXTENSIONS
  84. #define GLX_EXTENSIONS        0x3
  85. #endif
  86.  
  87. /*****************************************************************************/
  88.  
  89. /*
  90. ** For the structure definitions in this file, we must redefine these types in
  91. ** terms of Xmd.h types, which may include bitfields.  All of these are
  92. ** undef'ed at the end of this file, restoring the definitions in glx.h.
  93. */
  94. #define GLXContextID CARD32
  95. #define GLXPixmap CARD32
  96. #define GLXDrawable CARD32
  97. #define GLXPbuffer CARD32
  98. #define GLXWindow CARD32
  99. #define GLXFBConfigID CARD32
  100. #define GLXFBConfigIDSGIX CARD32
  101. #define GLXPbufferSGIX CARD32
  102.  
  103. /*
  104. ** ContextTag is not exposed to the API.
  105. */
  106. typedef CARD32 GLXContextTag;
  107.  
  108. /*****************************************************************************/
  109.  
  110. /*
  111. ** Sizes of basic wire types.
  112. */
  113. #define __GLX_SIZE_INT8        1
  114. #define __GLX_SIZE_INT16    2
  115. #define __GLX_SIZE_INT32    4
  116. #define __GLX_SIZE_CARD8    1
  117. #define __GLX_SIZE_CARD16    2
  118. #define __GLX_SIZE_CARD32    4
  119. #define __GLX_SIZE_FLOAT32    4
  120. #define __GLX_SIZE_FLOAT64    8
  121.  
  122. /*****************************************************************************/
  123.  
  124. /* Requests */
  125.  
  126. /*
  127. ** Render command request.  A bunch of rendering commands are packed into
  128. ** a single X extension request.
  129. */
  130. typedef struct GLXRender {
  131.     CARD8    reqType;
  132.     CARD8    glxCode;
  133.     CARD16    length B16;
  134.     GLXContextTag contextTag B32;
  135. } xGLXRenderReq;
  136. #define sz_xGLXRenderReq 8
  137.  
  138. /*
  139. ** The maximum size that a GLXRender command can be.  The value must fit
  140. ** in 16 bits and should be a multiple of 4.
  141. */
  142. #define __GLX_MAX_RENDER_CMD_SIZE    64000
  143.  
  144. /*
  145. ** Large render command request.  A single large rendering command
  146. ** is output in multiple X extension requests.    The first packet
  147. ** contains an opcode dependent header (see below) that describes
  148. ** the data that follows.
  149. */
  150. typedef struct GLXRenderLarge {
  151.     CARD8    reqType;
  152.     CARD8    glxCode;
  153.     CARD16    length B16;
  154.     GLXContextTag contextTag B32;
  155.     CARD16    requestNumber B16;
  156.     CARD16    requestTotal B16;
  157.     CARD32    dataBytes B32;
  158. } xGLXRenderLargeReq;
  159. #define sz_xGLXRenderLargeReq 16
  160.  
  161. /*
  162. ** GLX single request.    Commands that go over as single GLX protocol
  163. ** requests use this structure.  The glxCode will be one of the X_GLsop
  164. ** opcodes.
  165. */
  166. typedef struct GLXSingle {
  167.     CARD8    reqType;
  168.     CARD8    glxCode;
  169.     CARD16    length B16;
  170.     GLXContextTag contextTag B32;
  171. } xGLXSingleReq;
  172. #define sz_xGLXSingleReq 8
  173.  
  174. /*
  175. ** glXQueryVersion request
  176. */
  177. typedef struct GLXQueryVersion {
  178.     CARD8    reqType;
  179.     CARD8    glxCode;
  180.     CARD16    length B16;
  181.     CARD32    majorVersion B32;
  182.     CARD32    minorVersion B32;
  183. } xGLXQueryVersionReq;
  184. #define sz_xGLXQueryVersionReq 12
  185.  
  186. /*
  187. ** glXIsDirect request
  188. */
  189. typedef struct GLXIsDirect {
  190.     CARD8    reqType;
  191.     CARD8    glxCode;
  192.     CARD16    length B16;
  193.     GLXContextID context B32;
  194. } xGLXIsDirectReq;
  195. #define sz_xGLXIsDirectReq 8
  196.  
  197. /*
  198. ** glXCreateContext request
  199. */
  200. typedef struct GLXCreateContext {
  201.     CARD8    reqType;
  202.     CARD8    glxCode;
  203.     CARD16    length B16;
  204.     GLXContextID context B32;
  205.     CARD32    visual B32;
  206.     CARD32    screen B32;
  207.     GLXContextID shareList B32;
  208.     BOOL    isDirect;
  209.     CARD8    reserved1;
  210.     CARD16    reserved2 B16;
  211. } xGLXCreateContextReq;
  212. #define sz_xGLXCreateContextReq 24
  213.  
  214. /*
  215. ** glXDestroyContext request
  216. */
  217. typedef struct GLXDestroyContext {
  218.     CARD8    reqType;
  219.     CARD8    glxCode;
  220.     CARD16    length B16;
  221.     GLXContextID context B32;
  222. } xGLXDestroyContextReq;
  223. #define sz_xGLXDestroyContextReq 8
  224.  
  225. /*
  226. ** glXMakeCurrent request
  227. */
  228. typedef struct GLXMakeCurrent {
  229.     CARD8    reqType;
  230.     CARD8    glxCode;
  231.     CARD16    length B16;
  232.     GLXDrawable drawable B32;
  233.     GLXContextID context B32;
  234.     GLXContextTag oldContextTag B32;
  235. } xGLXMakeCurrentReq;
  236. #define sz_xGLXMakeCurrentReq 16
  237.  
  238. /*
  239. ** glXWaitGL request
  240. */
  241. typedef struct GLXWaitGL {
  242.     CARD8    reqType;
  243.     CARD8    glxCode;
  244.     CARD16    length B16;
  245.     GLXContextTag contextTag B32;
  246. } xGLXWaitGLReq;
  247. #define sz_xGLXWaitGLReq 8
  248.  
  249. /*
  250. ** glXWaitX request
  251. */
  252. typedef struct GLXWaitX {
  253.     CARD8    reqType;
  254.     CARD8    glxCode;
  255.     CARD16    length B16;
  256.     GLXContextTag contextTag B32;
  257. } xGLXWaitXReq;
  258. #define sz_xGLXWaitXReq 8
  259.  
  260. /*
  261. ** glXCopyContext request
  262. */
  263. typedef struct GLXCopyContext {
  264.     CARD8    reqType;
  265.     CARD8    glxCode;
  266.     CARD16    length B16;
  267.     GLXContextID source B32;
  268.     GLXContextID dest B32;
  269.     CARD32    mask B32;
  270.     GLXContextTag contextTag B32;
  271. } xGLXCopyContextReq;
  272. #define sz_xGLXCopyContextReq 20
  273.  
  274. /*
  275. ** glXSwapBuffers request
  276. */
  277. typedef struct GLXSwapBuffers {
  278.     CARD8    reqType;
  279.     CARD8    glxCode;
  280.     CARD16    length B16;
  281.     GLXContextTag contextTag B32;
  282.     GLXDrawable drawable B32;
  283. } xGLXSwapBuffersReq;
  284. #define sz_xGLXSwapBuffersReq 12
  285.  
  286. /*
  287. ** glXUseXFont request
  288. */
  289. typedef struct GLXUseXFont {
  290.     CARD8    reqType;
  291.     CARD8    glxCode;
  292.     CARD16    length B16;
  293.     GLXContextTag contextTag B32;
  294.     CARD32    font B32;
  295.     CARD32    first B32;
  296.     CARD32    count B32;
  297.     CARD32    listBase B32;
  298. } xGLXUseXFontReq;
  299. #define sz_xGLXUseXFontReq 24
  300.  
  301. /*
  302. ** glXCreateGLXPixmap request
  303. */
  304. typedef struct GLXCreateGLXPixmap {
  305.     CARD8    reqType;
  306.     CARD8    glxCode;
  307.     CARD16    length B16;
  308.     CARD32    screen B32;
  309.     CARD32    visual B32;
  310.     CARD32    pixmap B32;
  311.     GLXPixmap    glxpixmap B32;
  312. } xGLXCreateGLXPixmapReq;
  313. #define sz_xGLXCreateGLXPixmapReq 20
  314.  
  315. /*
  316. ** glXDestroyGLXPixmap request
  317. */
  318. typedef struct GLXDestroyGLXPixmap {
  319.     CARD8    reqType;
  320.     CARD8    glxCode;
  321.     CARD16    length B16;
  322.     GLXPixmap    glxpixmap B32;
  323. } xGLXDestroyGLXPixmapReq;
  324. #define sz_xGLXDestroyGLXPixmapReq 8
  325.  
  326. /*
  327. ** glXGetVisualConfigs request
  328. */
  329. typedef struct GLXGetVisualConfigs {
  330.     CARD8    reqType;
  331.     CARD8    glxCode;
  332.     CARD16    length B16;
  333.     CARD32    screen B32;
  334. } xGLXGetVisualConfigsReq;
  335. #define sz_xGLXGetVisualConfigsReq 8
  336.  
  337. /*
  338. ** glXVendorPrivate request.
  339. */
  340. typedef struct GLXVendorPrivate {
  341.     CARD8    reqType;
  342.     CARD8    glxCode;
  343.     CARD16    length B16;
  344.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  345.     GLXContextTag contextTag B32;
  346.     /*
  347.     ** More data may follow; this is just the header.
  348.     */
  349. } xGLXVendorPrivateReq;
  350. #define sz_xGLXVendorPrivateReq 12
  351.  
  352. /*
  353. ** glXVendorPrivateWithReply request
  354. */
  355. typedef struct GLXVendorPrivateWithReply {
  356.     CARD8    reqType;
  357.     CARD8    glxCode;
  358.     CARD16    length B16;
  359.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  360.     GLXContextTag contextTag B32;
  361.     /*
  362.     ** More data may follow; this is just the header.
  363.     */
  364. } xGLXVendorPrivateWithReplyReq;
  365. #define sz_xGLXVendorPrivateWithReplyReq 12
  366.  
  367. /*
  368. ** glXQueryExtensionsString request
  369. */
  370. typedef struct GLXQueryExtensionsString {
  371.     CARD8    reqType;
  372.     CARD8    glxCode;
  373.     CARD16    length B16;
  374.     CARD32    screen B32;
  375. } xGLXQueryExtensionsStringReq;
  376. #define sz_xGLXQueryExtensionsStringReq 8
  377.  
  378. /*
  379. ** glXQueryServerString request
  380. */
  381. typedef struct GLXQueryServerString {
  382.     CARD8    reqType;
  383.     CARD8    glxCode;
  384.     CARD16    length B16;
  385.     CARD32    screen    B32;
  386.     CARD32    name B32;
  387. } xGLXQueryServerStringReq;
  388. #define sz_xGLXQueryServerStringReq 12
  389.  
  390. /*
  391. ** glXClientInfo request
  392. */
  393. typedef struct GLXClientInfo {
  394.     CARD8    reqType;
  395.     CARD8    glxCode;
  396.     CARD16    length B16;
  397.     CARD32    major B32;
  398.     CARD32    minor B32;
  399.     CARD32    numbytes B32;
  400. } xGLXClientInfoReq;
  401. #define sz_xGLXClientInfoReq 16
  402.  
  403. /*** Start of GLX 1.3 requests */
  404.  
  405. /*
  406. ** glXGetFBConfigs request
  407. */
  408. typedef struct GLXGetFBConfigs {
  409.     CARD8    reqType;
  410.     CARD8    glxCode;
  411.     CARD16    length B16;
  412.     CARD32    screen B32;
  413. } xGLXGetFBConfigsReq;
  414. #define sz_xGLXGetFBConfigsReq 8
  415.  
  416. /*
  417. ** glXCreatePixmap request
  418. */
  419. typedef struct GLXCreatePixmap {
  420.     CARD8    reqType;
  421.     CARD8    glxCode;
  422.     CARD16    length B16;
  423.     CARD32    screen B32;
  424.     GLXFBConfigID fbconfig B32;
  425.     CARD32    pixmap B32;
  426.     GLXPixmap    glxpixmap B32;
  427.     CARD32    numAttribs B32;
  428.     /* followed by attribute list */
  429. } xGLXCreatePixmapReq;
  430. #define sz_xGLXCreatePixmapReq 24
  431.  
  432. /*
  433. ** glXDestroyPixmap request
  434. */
  435. typedef struct GLXDestroyPixmap {
  436.     CARD8    reqType;
  437.     CARD8    glxCode;
  438.     CARD16    length B16;
  439.     GLXPixmap    glxpixmap B32;
  440. } xGLXDestroyPixmapReq;
  441. #define sz_xGLXDestroyPixmapReq 8
  442.  
  443. /*
  444. ** glXCreateNewContext request
  445. */
  446. typedef struct GLXCreateNewContext {
  447.     CARD8    reqType;
  448.     CARD8    glxCode;
  449.     CARD16    length B16;
  450.     GLXContextID context B32;
  451.     GLXFBConfigID fbconfig B32;
  452.     CARD32    screen B32;
  453.     CARD32    renderType;
  454.     GLXContextID shareList B32;
  455.     BOOL    isDirect;
  456.     CARD8    reserved1;
  457.     CARD16    reserved2 B16;
  458. } xGLXCreateNewContextReq;
  459. #define sz_xGLXCreateNewContextReq 28
  460.  
  461. /*
  462. ** glXQueryContext request
  463. */
  464. typedef struct GLXQueryContext {
  465.     CARD8    reqType;
  466.     CARD8    glxCode;
  467.     CARD16    length B16;
  468.     GLXContextID context B32;
  469. } xGLXQueryContextReq;
  470. #define sz_xGLXQueryContextReq 8
  471.  
  472. /*
  473. ** glXMakeContextCurrent request
  474. */
  475. typedef struct GLXMakeContextCurrent {
  476.     CARD8    reqType;
  477.     CARD8    glxCode;
  478.     CARD16    length B16;
  479.     GLXContextTag oldContextTag B32;
  480.     GLXDrawable drawable B32;
  481.     GLXDrawable readdrawable B32;
  482.     GLXContextID context B32;
  483. } xGLXMakeContextCurrentReq;
  484. #define sz_xGLXMakeContextCurrentReq 20
  485.  
  486. /*
  487. ** glXCreatePbuffer request
  488. */
  489. typedef struct GLXCreatePbuffer {
  490.     CARD8    reqType;
  491.     CARD8    glxCode;
  492.     CARD16    length B16;
  493.     CARD32    screen B32;
  494.     GLXFBConfigID fbconfig B32;
  495.     GLXPbuffer    pbuffer B32;
  496.     CARD32    numAttribs B32;
  497.     /* followed by attribute list */
  498. } xGLXCreatePbufferReq;
  499. #define sz_xGLXCreatePbufferReq 20
  500.  
  501. /*
  502. ** glXDestroyPbuffer request
  503. */
  504. typedef struct GLXDestroyPbuffer {
  505.     CARD8    reqType;
  506.     CARD8    glxCode;
  507.     CARD16    length B16;
  508.     GLXPbuffer    pbuffer B32;
  509. } xGLXDestroyPbufferReq;
  510. #define sz_xGLXDestroyPbufferReq 8
  511.  
  512. /*
  513. ** glXGetDrawableAttributes request
  514. */
  515. typedef struct GLXGetDrawableAttributes {
  516.     CARD8    reqType;
  517.     CARD8    glxCode;
  518.     CARD16    length B16;
  519.     GLXDrawable drawable B32;
  520. } xGLXGetDrawableAttributesReq;
  521. #define sz_xGLXGetDrawableAttributesReq 8
  522.  
  523. /*
  524. ** glXChangeDrawableAttributes request
  525. */
  526. typedef struct GLXChangeDrawableAttributes {
  527.     CARD8    reqType;
  528.     CARD8    glxCode;
  529.     CARD16    length B16;
  530.     GLXDrawable drawable B32;
  531.     CARD32    numAttribs B32;
  532.     /* followed by attribute list */
  533. } xGLXChangeDrawableAttributesReq;
  534. #define sz_xGLXChangeDrawableAttributesReq 12
  535.  
  536. /*
  537. ** glXCreateWindow request
  538. */
  539. typedef struct GLXCreateWindow {
  540.     CARD8    reqType;
  541.     CARD8    glxCode;
  542.     CARD16    length B16;
  543.     CARD32    screen B32;
  544.     GLXFBConfigID fbconfig B32;
  545.     CARD32    window B32;
  546.     GLXWindow    glxwindow B32;
  547.     CARD32    numAttribs B32;
  548.     /* followed by attribute list */
  549. } xGLXCreateWindowReq;
  550. #define sz_xGLXCreateWindowReq 24
  551.  
  552. /*
  553. ** glXDestroyWindow request
  554. */
  555. typedef struct GLXDestroyWindow {
  556.     CARD8    reqType;
  557.     CARD8    glxCode;
  558.     CARD16    length B16;
  559.     GLXWindow    glxwindow B32;
  560. } xGLXDestroyWindowReq;
  561. #define sz_xGLXDestroyWindowReq 8
  562.  
  563. /* Replies */
  564.  
  565. typedef struct {
  566.     BYTE    type;            /* X_Reply */
  567.     CARD8    unused;            /* not used */
  568.     CARD16    sequenceNumber B16;
  569.     CARD32    length B32;
  570.     CARD32    error B32;
  571.     CARD32    pad2 B32;
  572.     CARD32    pad3 B32;
  573.     CARD32    pad4 B32;
  574.     CARD32    pad5 B32;
  575.     CARD32    pad6 B32;
  576. } xGLXGetErrorReply;
  577. #define sz_xGLXGetErrorReply 32
  578.  
  579. typedef struct {
  580.     BYTE    type;            /* X_Reply */
  581.     CARD8    unused;            /* not used */
  582.     CARD16    sequenceNumber B16;
  583.     CARD32    length B32;
  584.     GLXContextTag contextTag B32;
  585.     CARD32    pad2 B32;
  586.     CARD32    pad3 B32;
  587.     CARD32    pad4 B32;
  588.     CARD32    pad5 B32;
  589.     CARD32    pad6 B32;
  590. } xGLXMakeCurrentReply;
  591. #define sz_xGLXMakeCurrentReply 32
  592.  
  593. typedef struct {
  594.     BYTE    type;            /* X_Reply */
  595.     CARD8    unused;            /* not used */
  596.     CARD16    sequenceNumber B16;
  597.     CARD32    length B32;
  598.     CARD32    pad1 B32;
  599.     CARD32    pad2 B32;
  600.     CARD32    pad3 B32;
  601.     CARD32    pad4 B32;
  602.     CARD32    pad5 B32;
  603.     CARD32    pad6 B32;
  604. } xGLXReadPixelsReply;
  605. #define sz_xGLXReadPixelsReply 32
  606.  
  607. typedef struct {
  608.     BYTE    type;            /* X_Reply */
  609.     CARD8    unused;            /* not used */
  610.     CARD16    sequenceNumber B16;
  611.     CARD32    length B32;
  612.     CARD32    pad1 B32;
  613.     CARD32    pad2 B32;
  614.     CARD32    width B32;
  615.     CARD32    height B32;
  616.     CARD32    depth B32;
  617.     CARD32    pad6 B32;
  618. } xGLXGetTexImageReply;
  619. #define sz_xGLXGetTexImageReply 32
  620.  
  621. typedef struct {
  622.     BYTE    type;            /* X_Reply */
  623.     CARD8    unused;            /* not used */
  624.     CARD16    sequenceNumber B16;
  625.     CARD32    length B32;
  626.     CARD32    pad1 B32;
  627.     CARD32    pad2 B32;
  628.     CARD32    width B32;
  629.     CARD32    height B32;
  630.     CARD32    pad5 B32;
  631.     CARD32    pad6 B32;
  632. } xGLXGetSeparableFilterReply;
  633. #define sz_xGLXGetSeparableFilterReply 32
  634.  
  635. typedef struct {
  636.     BYTE    type;            /* X_Reply */
  637.     CARD8    unused;            /* not used */
  638.     CARD16    sequenceNumber B16;
  639.     CARD32    length B32;
  640.     CARD32    pad1 B32;
  641.     CARD32    pad2 B32;
  642.     CARD32    width B32;
  643.     CARD32    height B32;
  644.     CARD32    pad5 B32;
  645.     CARD32    pad6 B32;
  646. } xGLXGetConvolutionFilterReply;
  647. #define sz_xGLXGetConvolutionFilterReply 32
  648.  
  649. typedef struct {
  650.     BYTE    type;            /* X_Reply */
  651.     CARD8    unused;            /* not used */
  652.     CARD16    sequenceNumber B16;
  653.     CARD32    length B32;
  654.     CARD32    pad1 B32;
  655.     CARD32    pad2 B32;
  656.     CARD32    width B32;
  657.     CARD32    pad4 B32;
  658.     CARD32    pad5 B32;
  659.     CARD32    pad6 B32;
  660. } xGLXGetHistogramReply;
  661. #define sz_xGLXGetHistogramReply 32
  662.  
  663. typedef struct {
  664.     BYTE    type;            /* X_Reply */
  665.     CARD8    unused;            /* not used */
  666.     CARD16    sequenceNumber B16;
  667.     CARD32    length B32;
  668.     CARD32    pad1 B32;
  669.     CARD32    pad2 B32;
  670.     CARD32    pad3 B32;
  671.     CARD32    pad4 B32;
  672.     CARD32    pad5 B32;
  673.     CARD32    pad6 B32;
  674. } xGLXGetMinmaxReply;
  675. #define sz_xGLXGetMinmaxReply 32
  676.  
  677. typedef struct {
  678.     BYTE    type;            /* X_Reply */
  679.     CARD8    unused;            /* not used */
  680.     CARD16    sequenceNumber B16;
  681.     CARD32    length B32;
  682.     CARD32    retval B32;
  683.     CARD32    size B32;
  684.     CARD32    newMode B32;
  685.     CARD32    pad4 B32;
  686.     CARD32    pad5 B32;
  687.     CARD32    pad6 B32;
  688. } xGLXRenderModeReply;
  689. #define sz_xGLXRenderModeReply 32
  690.  
  691. typedef struct {
  692.     BYTE    type;            /* X_Reply */
  693.     CARD8    unused;            /* not used */
  694.     CARD16    sequenceNumber B16;
  695.     CARD32    length B32;
  696.     CARD32    majorVersion B32;
  697.     CARD32    minorVersion B32;
  698.     CARD32    pad3 B32;
  699.     CARD32    pad4 B32;
  700.     CARD32    pad5 B32;
  701.     CARD32    pad6 B32;
  702. } xGLXQueryVersionReply;
  703. #define sz_xGLXQueryVersionReply 32
  704.  
  705. typedef struct {
  706.     BYTE    type;            /* X_Reply */
  707.     CARD8    unused;            /* not used */
  708.     CARD16    sequenceNumber B16;
  709.     CARD32    length B32;
  710.     CARD32    numVisuals B32;
  711.     CARD32    numProps B32;
  712.     CARD32    pad3 B32;
  713.     CARD32    pad4 B32;
  714.     CARD32    pad5 B32;
  715.     CARD32    pad6 B32;
  716. } xGLXGetVisualConfigsReply;
  717. #define sz_xGLXGetVisualConfigsReply 32
  718.  
  719. typedef struct {
  720.     BYTE    type;            /* X_Reply */
  721.     CARD8    unused;            /* not used */
  722.     CARD16    sequenceNumber B16;
  723.     CARD32    length B32;
  724.     BOOL    isDirect;
  725.     CARD8    pad1;
  726.     CARD16    pad2 B16;
  727.     CARD32    pad3 B32;
  728.     CARD32    pad4 B32;
  729.     CARD32    pad5 B32;
  730.     CARD32    pad6 B32;
  731.     CARD32    pad7 B32;
  732. } xGLXIsDirectReply;
  733. #define sz_xGLXIsDirectReply    32
  734.  
  735. /*
  736. ** This reply structure is used for all single replies.  Single replies
  737. ** ship either 1 piece of data or N pieces of data.  In these cases
  738. ** size indicates how much data is to be returned.
  739. */
  740. typedef struct {
  741.     BYTE    type;            /* X_Reply */
  742.     CARD8    unused;            /* not used */
  743.     CARD16    sequenceNumber B16;
  744.     CARD32    length B32;
  745.     CARD32    retval B32;
  746.     CARD32    size B32;
  747.     CARD32    pad3 B32;        /* NOTE: may hold a single value */
  748.     CARD32    pad4 B32;        /* NOTE: may hold half a double */
  749.     CARD32    pad5 B32;
  750.     CARD32    pad6 B32;
  751. } xGLXSingleReply;
  752. #define sz_xGLXSingleReply 32
  753.  
  754. /*
  755. ** This reply structure is used for all Vendor Private replies. Vendor
  756. ** Private replies can ship up to 24 bytes within the header or can
  757. ** be variable sized, in which case, the reply length field indicates
  758. ** the number of words of data which follow the header.
  759. */
  760. typedef struct {
  761.     BYTE    type;            /* X_Reply */
  762.     CARD8    unused;            /* not used */
  763.     CARD16    sequenceNumber B16;
  764.     CARD32    length B32;
  765.     CARD32    retval B32;
  766.     CARD32    size B32;
  767.     CARD32    pad3 B32;
  768.     CARD32    pad4 B32;
  769.     CARD32    pad5 B32;
  770.     CARD32    pad6 B32;
  771. } xGLXVendorPrivReply;
  772. #define sz_xGLXVendorPrivReply 32
  773.  
  774. /*
  775. **  QueryExtensionsStringReply
  776. **  n indicates the number of bytes to be returned.
  777. */
  778. typedef struct {
  779.     BYTE    type;            /* X_Reply */
  780.     CARD8    unused;            /* not used */
  781.     CARD16    sequenceNumber B16;
  782.     CARD32    length B32;
  783.     CARD32    pad1 B32;
  784.     CARD32    n B32;
  785.     CARD32    pad3 B32;
  786.     CARD32    pad4 B32;
  787.     CARD32    pad5 B32;
  788.     CARD32    pad6 B32;
  789. } xGLXQueryExtensionsStringReply;
  790. #define sz_xGLXQueryExtensionsStringReply 32
  791.  
  792. /*
  793. ** QueryServerString Reply struct
  794. ** n indicates the number of bytes to be returned.
  795. */
  796. typedef struct {
  797.     BYTE    type;            /* X_Reply */
  798.     CARD8    unused;            /* not used */
  799.     CARD16    sequenceNumber B16;
  800.     CARD32    length B32;
  801.     CARD32    pad1 B32;
  802.     CARD32    n B32;
  803.     CARD32    pad3 B32;        /* NOTE: may hold a single value */
  804.     CARD32    pad4 B32;        /* NOTE: may hold half a double */
  805.     CARD32    pad5 B32;
  806.     CARD32    pad6 B32;
  807. } xGLXQueryServerStringReply;
  808. #define sz_xGLXQueryServerStringReply 32
  809.  
  810. /*** Start of GLX 1.3 replies */
  811.  
  812. /*
  813. ** glXGetFBConfigs reply
  814. */
  815. typedef struct {
  816.     BYTE    type;            /* X_Reply */
  817.     CARD8    unused;            /* not used */
  818.     CARD16    sequenceNumber B16;
  819.     CARD32    length B32;
  820.     CARD32    numFBConfigs B32;
  821.     CARD32    numAttribs B32;
  822.     CARD32    pad3 B32;
  823.     CARD32    pad4 B32;
  824.     CARD32    pad5 B32;
  825.     CARD32    pad6 B32;
  826. } xGLXGetFBConfigsReply;
  827. #define sz_xGLXGetFBConfigsReply 32
  828.  
  829. /*
  830. ** glXQueryContext reply
  831. */
  832. typedef struct {
  833.     BYTE    type;            /* X_Reply */
  834.     CARD8    unused;            /* not used */
  835.     CARD16    sequenceNumber B16;
  836.     CARD32    length B32;
  837.     CARD32    n B32;            /* number of attribute/value pairs */
  838.     CARD32    pad2 B32;
  839.     CARD32    pad3 B32;
  840.     CARD32    pad4 B32;
  841.     CARD32    pad5 B32;
  842.     CARD32    pad6 B32;
  843. } xGLXQueryContextReply;
  844. #define sz_xGLXQueryContextReply 32
  845.  
  846. /*
  847. ** glXMakeContextCurrent reply
  848. */
  849. typedef struct {
  850.     BYTE    type;            /* X_Reply */
  851.     CARD8    unused;            /* not used */
  852.     CARD16    sequenceNumber B16;
  853.     CARD32    length B32;
  854.     GLXContextTag contextTag B32;
  855.     CARD32    pad2 B32;
  856.     CARD32    pad3 B32;
  857.     CARD32    pad4 B32;
  858.     CARD32    pad5 B32;
  859.     CARD32    pad6 B32;
  860. } xGLXMakeContextCurrentReply;
  861. #define sz_xGLXMakeContextCurrentReply 32
  862.  
  863. /*
  864. ** glXCreateGLXPbuffer reply
  865. ** This is used only in the direct rendering case on SGIs - otherwise
  866. **  CreateGLXPbuffer has no reply. It is not part of GLX 1.3.
  867. */
  868. typedef struct {
  869.     BYTE    type;            /* X_Reply */
  870.     CARD8    success;
  871.     CARD16    sequenceNumber B16;
  872.     CARD32    length B32;
  873.     CARD32    pad1 B32;
  874.     CARD32    pad2 B32;
  875.     CARD32    pad3 B32;
  876.     CARD32    pad4 B32;
  877.     CARD32    pad5 B32;
  878.     CARD32    pad6 B32;
  879. } xGLXCreateGLXPbufferReply;
  880. #define sz_xGLXCreateGLXPbufferReply 32
  881.  
  882. /*
  883. ** glXGetDrawableAttributes reply
  884. */
  885. typedef struct {
  886.     BYTE    type;            /* X_Reply */
  887.     CARD8    unused;            /* not used */
  888.     CARD16    sequenceNumber B16;
  889.     CARD32    length B32;
  890.     CARD32    numAttribs B32;
  891.     CARD32    pad2 B32;
  892.     CARD32    pad3 B32;
  893.     CARD32    pad4 B32;
  894.     CARD32    pad5 B32;
  895.     CARD32    pad6 B32;
  896. } xGLXGetDrawableAttributesReply;
  897. #define sz_xGLXGetDrawableAttributesReply 32
  898.  
  899. /*
  900. ** glXGetColorTable reply
  901. */
  902. typedef struct {
  903.     BYTE    type;               /* X_Reply */
  904.     CARD8    unused;               /* not used */
  905.     CARD16    sequenceNumber B16;
  906.     CARD32    length B32;
  907.     CARD32    pad1 B32;
  908.     CARD32    pad2 B32;
  909.     CARD32    width B32;
  910.     CARD32    pad4 B32;
  911.     CARD32    pad5 B32;
  912.     CARD32    pad6 B32;
  913. } xGLXGetColorTableReply;
  914. #define sz_xGLXGetColorTableReply 32
  915.  
  916. /************************************************************************/
  917.  
  918. /* GLX extension requests and replies */
  919.  
  920. /*
  921. ** glXQueryContextInfoEXT request
  922. */
  923. typedef struct GLXQueryContextInfoEXT {
  924.     CARD8    reqType;
  925.     CARD8    glxCode;
  926.     CARD16    length B16;
  927.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  928.     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
  929.     GLXContextID context B32;
  930. } xGLXQueryContextInfoEXTReq;
  931. #define sz_xGLXQueryContextInfoEXTReq 16
  932.  
  933. /*
  934. ** glXQueryContextInfoEXT reply
  935. */
  936. typedef struct {
  937.     BYTE    type;            /* X_Reply */
  938.     CARD8    unused;            /* not used */
  939.     CARD16    sequenceNumber B16;
  940.     CARD32    length B32;
  941.     CARD32    n B32;            /* number of attribute/value pairs */
  942.     CARD32    pad2 B32;
  943.     CARD32    pad3 B32;
  944.     CARD32    pad4 B32;
  945.     CARD32    pad5 B32;
  946.     CARD32    pad6 B32;
  947. } xGLXQueryContextInfoEXTReply;
  948. #define sz_xGLXQueryContextInfoEXTReply 32
  949.  
  950. /*
  951. ** glXMakeCurrentReadSGI request
  952. */
  953. typedef struct GLXMakeCurrentReadSGI {
  954.     CARD8    reqType;
  955.     CARD8    glxCode;
  956.     CARD16    length B16;
  957.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  958.     GLXContextTag oldContextTag B32;
  959.     GLXDrawable drawable B32;
  960.     GLXDrawable readable B32;
  961.     GLXContextID context B32;
  962. } xGLXMakeCurrentReadSGIReq;
  963. #define sz_xGLXMakeCurrentReadSGIReq 24
  964.  
  965. typedef struct {
  966.     BYTE    type;            /* X_Reply */
  967.     CARD8    unused;            /* not used */
  968.     CARD16    sequenceNumber B16;
  969.     CARD32    length B32;
  970.     GLXContextTag contextTag B32;
  971.     CARD32    writeVid B32;
  972.     CARD32    writeType B32;
  973.     CARD32    readVid B32;
  974.     CARD32    readType B32;
  975.     CARD32    pad6 B32;
  976. } xGLXMakeCurrentReadSGIReply;
  977. #define sz_xGLXMakeCurrentReadSGIReply 32
  978.  
  979. /*
  980. ** glXGetFBConfigsSGIX request
  981. */
  982. typedef struct GLXGetFBConfigsSGIX {
  983.     CARD8    reqType;
  984.     CARD8    glxCode;
  985.     CARD16    length B16;
  986.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  987.     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
  988.     CARD32    screen B32;
  989. } xGLXGetFBConfigsSGIXReq;
  990. #define sz_xGLXGetFBConfigsSGIXReq 16
  991.  
  992. /*
  993. ** glXCreateContextWithConfigSGIX request
  994. */
  995.  
  996. typedef struct GLXCreateContextWithConfigSGIX {
  997.     CARD8    reqType;
  998.     CARD8    glxCode;
  999.     CARD16    length B16;
  1000.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  1001.     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
  1002.     GLXContextID context B32;
  1003.     GLXFBConfigID fbconfig B32;
  1004.     CARD32    screen B32;
  1005.     CARD32    renderType;
  1006.     GLXContextID shareList B32;
  1007.     BOOL    isDirect;
  1008.     CARD8    reserved1;
  1009.     CARD16    reserved2 B16;
  1010. } xGLXCreateContextWithConfigSGIXReq;
  1011. #define sz_xGLXCreateContextWithConfigSGIXReq 36
  1012.  
  1013. /*
  1014. ** glXCreatePixmapWithConfigSGIX request
  1015. */
  1016.  
  1017. typedef struct GLXCreateGLXPixmapWithConfigSGIX {
  1018.     CARD8    reqType;
  1019.     CARD8    glxCode;
  1020.     CARD16    length B16;
  1021.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  1022.     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
  1023.     CARD32    screen B32;
  1024.     GLXFBConfigID fbconfig B32;
  1025.     CARD32    pixmap B32;
  1026.     GLXPixmap    glxpixmap B32;
  1027. } xGLXCreateGLXPixmapWithConfigSGIXReq;
  1028. #define sz_xGLXCreateGLXPixmapWithConfigSGIXReq 28
  1029.  
  1030. /*
  1031. ** glXCreateGLXPbufferSGIX request
  1032. */
  1033. typedef struct GLXCreateGLXPbufferSGIX {
  1034.     CARD8    reqType;
  1035.     CARD8    glxCode;
  1036.     CARD16    length B16;
  1037.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  1038.     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
  1039.     CARD32    screen B32;
  1040.     GLXFBConfigID fbconfig B32;
  1041.     GLXPbuffer    pbuffer B32;
  1042.     CARD32    width B32;
  1043.     CARD32    height B32;
  1044.     /* followed by attribute list */
  1045. } xGLXCreateGLXPbufferSGIXReq;
  1046. #define sz_xGLXCreateGLXPbufferSGIXReq 32
  1047.  
  1048. /*
  1049. ** glXDestroyGLXPbufferSGIX request
  1050. */
  1051. typedef struct GLXDestroyGLXPbuffer {
  1052.     CARD8    reqType;
  1053.     CARD8    glxCode;
  1054.     CARD16    length B16;
  1055.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  1056.     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
  1057.     GLXPbuffer    pbuffer B32;
  1058. } xGLXDestroyGLXPbufferSGIXReq;
  1059. #define sz_xGLXDestroyGLXPbufferSGIXReq 16
  1060.  
  1061. /*
  1062. ** glXChangeDrawableAttributesSGIX request
  1063. */
  1064. typedef struct GLXChangeDrawableAttributesSGIX {
  1065.     CARD8    reqType;
  1066.     CARD8    glxCode;
  1067.     CARD16    length B16;
  1068.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  1069.     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
  1070.     GLXDrawable drawable B32;
  1071.     CARD32    numAttribs B32;
  1072.     /* followed by attribute list */
  1073. } xGLXChangeDrawableAttributesSGIXReq;
  1074. #define sz_xGLXChangeDrawableAttributesSGIXReq 20
  1075.  
  1076. /*
  1077. ** glXGetDrawableAttributesSGIX request
  1078. */
  1079. typedef struct GLXGetDrawableAttributesSGIX {
  1080.     CARD8    reqType;
  1081.     CARD8    glxCode;
  1082.     CARD16    length B16;
  1083.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  1084.     CARD32    pad1 B32;   /* unused; corresponds to contextTag in header */
  1085.     GLXDrawable drawable B32;
  1086. } xGLXGetDrawableAttributesSGIXReq;
  1087. #define sz_xGLXGetDrawableAttributesSGIXReq 16
  1088.  
  1089. /*
  1090. ** glXGetDrawableAttributesSGIX reply
  1091. */
  1092. typedef struct {
  1093.     BYTE    type;            /* X_Reply */
  1094.     CARD8    unused;            /* not used */
  1095.     CARD16    sequenceNumber B16;
  1096.     CARD32    length B32;
  1097.     CARD32    numAttribs B32;
  1098.     CARD32    pad2 B32;
  1099.     CARD32    pad3 B32;
  1100.     CARD32    pad4 B32;
  1101.     CARD32    pad5 B32;
  1102.     CARD32    pad6 B32;
  1103. } xGLXGetDrawableAttributesSGIXReply;
  1104. #define sz_xGLXGetDrawableAttributesSGIXReply 32
  1105.  
  1106. /*
  1107. ** glXJoinSwapGroupSGIX request
  1108. */
  1109. typedef struct GLXJoinSwapGroupSGIX {
  1110.     CARD8    reqType;
  1111.     CARD8    glxCode;
  1112.     CARD16    length B16;
  1113.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  1114.     CARD32     unused B32;        /* corresponds to contextTag in hdr */
  1115.     GLXDrawable    drawable B32;
  1116.     GLXDrawable    member B32;
  1117. } xGLXJoinSwapGroupSGIXReq;
  1118. #define sz_xGLXJoinSwapGroupSGIXReq 20
  1119.  
  1120. /*
  1121. ** glXBindSwapBarrierSGIX request
  1122. */
  1123. typedef struct GLXBindSwapBarrierSGIX {
  1124.     CARD8    reqType;
  1125.     CARD8    glxCode;
  1126.     CARD16    length B16;
  1127.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  1128.     CARD32     unused B32;        /* corresponds to contextTag in hdr */
  1129.     GLXDrawable    drawable B32;
  1130.     CARD32    barrier B32;
  1131. } xGLXBindSwapBarrierSGIXReq;
  1132. #define sz_xGLXBindSwapBarrierSGIXReq 20
  1133.  
  1134. /*
  1135. ** glXQueryMaxSwapBarriersSGIX request
  1136. */
  1137. typedef struct GLXQueryMaxSwapBarriersSGIX {
  1138.     CARD8    reqType;
  1139.     CARD8    glxCode;
  1140.     CARD16    length B16;
  1141.     CARD32    vendorCode B32;        /* vendor-specific opcode */
  1142.     CARD32     unused B32;        /* corresponds to contextTag in hdr */
  1143.     CARD32    screen B32;
  1144. } xGLXQueryMaxSwapBarriersSGIXReq;
  1145. #define sz_xGLXQueryMaxSwapBarriersSGIXReq 16
  1146.  
  1147. typedef struct {
  1148.     BYTE    type;            /* X_Reply */
  1149.     CARD8    unused;            /* not used */
  1150.     CARD16    sequenceNumber B16;
  1151.     CARD32    length B32;
  1152.     CARD32    max B32;
  1153.     CARD32    size B32;
  1154.     CARD32    pad3 B32;
  1155.     CARD32    pad4 B32;
  1156.     CARD32    pad5 B32;
  1157.     CARD32    pad6 B32;
  1158. } xGLXQueryMaxSwapBarriersSGIXReply;
  1159. #define sz_xGLXQueryMaxSwapBarriersSGIXReply 32
  1160.  
  1161. /*
  1162. ** glXQueryHyperpipeNetworkSGIX request
  1163. */
  1164. typedef struct GLXQueryHyperpipeNetworkSGIX {
  1165.     CARD8       reqType;
  1166.     CARD8       glxCode;
  1167.     CARD16      length B16;
  1168.     CARD32      vendorCode B32;         /* vendor-specific opcode */
  1169.     CARD32      pad1 B32;   /* unused; corresponds to contextTag in header */
  1170.     CARD32      screen B32;
  1171. } xGLXQueryHyperpipeNetworkSGIXReq;
  1172. #define sz_xGLXQueryHyperpipeNetworkSGIXReq 16
  1173.  
  1174. /*
  1175. ** glXQueryHyperpipeNetworkSGIX reply
  1176. */
  1177. typedef struct {
  1178.     BYTE        type;                   /* X_Reply */
  1179.     CARD8       unused;                 /* not used */
  1180.     CARD16      sequenceNumber B16;
  1181.     CARD32      length B32;
  1182.     CARD32      pad1 B32;
  1183.     CARD32      n B32;
  1184.     CARD32      npipes B32;             /* NOTE: may hold a single value */
  1185.     CARD32      pad4 B32;               /* NOTE: may hold half a double */
  1186.     CARD32      pad5 B32;
  1187.     CARD32      pad6 B32;
  1188. } xGLXQueryHyperpipeNetworkSGIXReply;
  1189. #define sz_xGLXQueryHyperpipeNetworkSGIXReply 32
  1190.  
  1191. /*
  1192. ** glXDestroyHyperpipeConfigSGIX request
  1193. */
  1194. typedef struct GLXDestroyHyperpipeConfigSGIX {
  1195.     CARD8       reqType;
  1196.     CARD8       glxCode;
  1197.     CARD16      length B16;
  1198.     CARD32      vendorCode B32;         /* vendor-specific opcode */
  1199.     CARD32      pad1 B32;   /* unused; corresponds to contextTag in header */
  1200.     CARD32      screen B32;
  1201.     CARD32      hpId B32;
  1202.     CARD32      pad2 B32;
  1203.     CARD32      pad3 B32;
  1204.     CARD32      pad4 B32;
  1205. } xGLXDestroyHyperpipeConfigSGIXReq;
  1206. #define sz_xGLXDestroyHyperpipeConfigSGIXReq 32
  1207.  
  1208. /*
  1209. ** glXDestroyHyperpipeConfigSGIX reply
  1210. */
  1211. typedef struct {
  1212.     BYTE        type;                   /* X_Reply */
  1213.     CARD8       unused;                 /* not used */
  1214.     CARD16      sequenceNumber B16;
  1215.     CARD32      length B32;
  1216.     CARD32      pad1 B32;
  1217.     CARD32      n B32;
  1218.     CARD32      success B32;            /* NOTE: may hold a single value */
  1219.     CARD32      pad4 B32;               /* NOTE: may hold half a double */
  1220.     CARD32      pad5 B32;
  1221.     CARD32      pad6 B32;
  1222. } xGLXDestroyHyperpipeConfigSGIXReply;
  1223. #define sz_xGLXDestroyHyperpipeConfigSGIXReply 32
  1224.  
  1225. /*
  1226. ** glXQueryHyperpipeConfigSGIX request
  1227. */
  1228. typedef struct GLXQueryHyperpipeConfigSGIX {
  1229.     CARD8       reqType;
  1230.     CARD8       glxCode;
  1231.     CARD16      length B16;
  1232.     CARD32      vendorCode B32;         /* vendor-specific opcode */
  1233.     CARD32      pad1 B32;   /* unused; corresponds to contextTag in header */
  1234.     CARD32      screen B32;
  1235.     CARD32      hpId B32;
  1236.     CARD32      pad2 B32;
  1237.     CARD32      pad3 B32;
  1238.     CARD32      pad4 B32;
  1239. } xGLXQueryHyperpipeConfigSGIXReq;
  1240. #define sz_xGLXQueryHyperpipeConfigSGIXReq 32
  1241.  
  1242. /*
  1243. ** glXQueryHyperpipeConfigSGIX reply
  1244. */
  1245. typedef struct {
  1246.     BYTE        type;                   /* X_Reply */
  1247.     CARD8       unused;                 /* not used */
  1248.     CARD16      sequenceNumber B16;
  1249.     CARD32      length B32;
  1250.     CARD32      pad1 B32;
  1251.     CARD32      n B32;
  1252.     CARD32      npipes B32;
  1253.     CARD32      pad4 B32;
  1254.     CARD32      pad5 B32;
  1255.     CARD32      pad6 B32;
  1256. } xGLXQueryHyperpipeConfigSGIXReply;
  1257. #define sz_xGLXQueryHyperpipeConfigSGIXReply 32
  1258.  
  1259. /*
  1260. ** glXHyperpipeConfigSGIX request
  1261. */
  1262. typedef struct GLXHyperpipeConfigSGIX {
  1263.     CARD8       reqType;
  1264.     CARD8       glxCode;
  1265.     CARD16      length B16;
  1266.     CARD32      vendorCode B32;         /* vendor-specific opcode */
  1267.     CARD32      pad1 B32;   /* unused; corresponds to contextTag in header */
  1268.     CARD32      screen B32;
  1269.     CARD32      npipes B32;
  1270.     CARD32      networkId B32;
  1271.     CARD32      pad2 B32;
  1272.     CARD32      pad3 B32;
  1273.     /* followed by attribute list */
  1274. } xGLXHyperpipeConfigSGIXReq;
  1275. #define sz_xGLXHyperpipeConfigSGIXReq 32
  1276.  
  1277. /*
  1278. ** glXHyperpipeConfigSGIX reply
  1279. */
  1280. typedef struct {
  1281.     BYTE        type;                   /* X_Reply */
  1282.     CARD8       unused;                 /* not used */
  1283.     CARD16      sequenceNumber B16;
  1284.     CARD32      length B32;
  1285.     CARD32      pad1 B32;
  1286.     CARD32      n B32;
  1287.     CARD32      npipes B32;
  1288.     CARD32      hpId B32;
  1289.     CARD32      pad5 B32;
  1290.     CARD32      pad6 B32;
  1291. } xGLXHyperpipeConfigSGIXReply;
  1292. #define sz_xGLXHyperpipeConfigSGIXReply 32
  1293.  
  1294. /************************************************************************/
  1295.  
  1296. /*
  1297. ** Events
  1298. */
  1299.  
  1300. typedef struct {
  1301.     BYTE type;
  1302.     BYTE pad;
  1303.     CARD16 sequenceNumber B16;
  1304.     CARD16 event_type B16;  /*** was clobber_class */
  1305.     CARD16 draw_type B16;
  1306.     CARD32 drawable B32;
  1307.     CARD32 buffer_mask B32; /*** was mask */
  1308.     CARD16 aux_buffer B16;
  1309.     CARD16 x B16;
  1310.     CARD16 y B16;
  1311.     CARD16 width B16;
  1312.     CARD16 height B16;
  1313.     CARD16 count B16;
  1314.     CARD32 unused2 B32;
  1315. } xGLXPbufferClobberEvent;
  1316.  
  1317. /************************************************************************/
  1318.  
  1319. /*
  1320. ** Size of the standard X request header.
  1321. */
  1322. #define __GLX_SINGLE_HDR_SIZE sz_xGLXSingleReq
  1323. #define __GLX_VENDPRIV_HDR_SIZE sz_xGLXVendorPrivateReq
  1324.  
  1325. #define __GLX_RENDER_HDR    \
  1326.     CARD16    length B16; \
  1327.     CARD16    opcode B16
  1328.  
  1329. #define __GLX_RENDER_HDR_SIZE 4
  1330.  
  1331. typedef struct {
  1332.     __GLX_RENDER_HDR;
  1333. } __GLXrenderHeader;
  1334.  
  1335. #define __GLX_RENDER_LARGE_HDR \
  1336.     CARD32    length B32;    \
  1337.     CARD32    opcode B32
  1338.  
  1339. #define __GLX_RENDER_LARGE_HDR_SIZE 8
  1340.  
  1341. typedef struct {
  1342.     __GLX_RENDER_LARGE_HDR;
  1343. } __GLXrenderLargeHeader;
  1344.  
  1345. /*
  1346. ** The glBitmap, glPolygonStipple, glTexImage[12]D, glTexSubImage[12]D
  1347. ** and glDrawPixels calls all have a pixel header transmitted after the
  1348. ** Render or RenderLarge header and before their own opcode specific
  1349. ** headers.
  1350. */
  1351. #define __GLX_PIXEL_HDR        \
  1352.     BOOL    swapBytes;    \
  1353.     BOOL    lsbFirst;    \
  1354.     CARD8    reserved0;    \
  1355.     CARD8    reserved1;    \
  1356.     CARD32    rowLength B32;    \
  1357.     CARD32    skipRows B32;    \
  1358.     CARD32    skipPixels B32; \
  1359.     CARD32    alignment B32
  1360.  
  1361. #define __GLX_PIXEL_HDR_SIZE 20
  1362.  
  1363. typedef struct {
  1364.     __GLX_PIXEL_HDR;
  1365. } __GLXpixelHeader;
  1366.  
  1367. /*
  1368. ** glTexImage[34]D and glTexSubImage[34]D calls
  1369. ** all have a pixel header transmitted after the Render or RenderLarge
  1370. ** header and before their own opcode specific headers.
  1371. */
  1372. #define __GLX_PIXEL_3D_HDR        \
  1373.     BOOL    swapBytes;        \
  1374.     BOOL    lsbFirst;        \
  1375.     CARD8    reserved0;        \
  1376.     CARD8    reserved1;        \
  1377.     CARD32    rowLength B32;        \
  1378.     CARD32    imageHeight B32;    \
  1379.     CARD32    imageDepth B32;        \
  1380.     CARD32    skipRows B32;        \
  1381.     CARD32    skipImages B32;        \
  1382.     CARD32    skipVolumes B32;    \
  1383.     CARD32    skipPixels B32;        \
  1384.     CARD32    alignment B32
  1385.  
  1386. #define __GLX_PIXEL_3D_HDR_SIZE 36
  1387.  
  1388. /*
  1389. ** Data that is specific to a glBitmap call.  The data is sent in the
  1390. ** following order:
  1391. **    Render or RenderLarge header
  1392. **    Pixel header
  1393. **    Bitmap header
  1394. */
  1395. #define __GLX_BITMAP_HDR    \
  1396.     CARD32    width B32;  \
  1397.     CARD32    height B32; \
  1398.     FLOAT32    xorig F32;  \
  1399.     FLOAT32    yorig F32;  \
  1400.     FLOAT32    xmove F32;  \
  1401.     FLOAT32    ymove F32
  1402.  
  1403. typedef struct {
  1404.     __GLX_RENDER_HDR;
  1405.     __GLX_PIXEL_HDR;
  1406.     __GLX_BITMAP_HDR;
  1407. } __GLXbitmapHeader;
  1408.  
  1409. typedef struct {
  1410.     __GLX_RENDER_LARGE_HDR;
  1411.     __GLX_PIXEL_HDR;
  1412.     __GLX_BITMAP_HDR;
  1413. } __GLXbitmapLargeHeader;
  1414.  
  1415. typedef struct {
  1416.     __GLX_PIXEL_HDR;
  1417.     __GLX_BITMAP_HDR;
  1418. } __GLXdispatchBitmapHeader;
  1419.  
  1420. #define __GLX_BITMAP_HDR_SIZE 24
  1421.  
  1422. #define __GLX_BITMAP_CMD_HDR_SIZE \
  1423.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_BITMAP_HDR_SIZE)
  1424.  
  1425. #define __GLX_BITMAP_CMD_DISPATCH_HDR_SIZE \
  1426.     (__GLX_PIXEL_HDR_SIZE + __GLX_BITMAP_HDR_SIZE)
  1427.  
  1428. typedef struct {
  1429.     __GLX_RENDER_HDR;
  1430.     __GLX_PIXEL_HDR;
  1431. } __GLXpolygonStippleHeader;
  1432.  
  1433. #define __GLX_POLYGONSTIPPLE_CMD_HDR_SIZE \
  1434.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE)
  1435.  
  1436. /*
  1437. ** Data that is specific to a glTexImage1D or glTexImage2D call.  The
  1438. ** data is sent in the following order:
  1439. **    Render or RenderLarge header
  1440. **    Pixel header
  1441. **    TexImage header
  1442. ** When a glTexImage1D call the height field is unexamined by the server.
  1443. */
  1444. #define __GLX_TEXIMAGE_HDR    \
  1445.     CARD32    target B32;    \
  1446.     CARD32    level B32;    \
  1447.     CARD32    components B32; \
  1448.     CARD32    width B32;    \
  1449.     CARD32    height B32;    \
  1450.     CARD32    border B32;    \
  1451.     CARD32    format B32;    \
  1452.     CARD32    type B32
  1453.  
  1454. #define __GLX_TEXIMAGE_HDR_SIZE 32
  1455.  
  1456. #define __GLX_TEXIMAGE_CMD_HDR_SIZE \
  1457.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_TEXIMAGE_HDR_SIZE)
  1458.  
  1459. #define __GLX_TEXIMAGE_CMD_DISPATCH_HDR_SIZE \
  1460.     (__GLX_PIXEL_HDR_SIZE + __GLX_TEXIMAGE_HDR_SIZE)
  1461.  
  1462. typedef struct {
  1463.     __GLX_RENDER_HDR;
  1464.     __GLX_PIXEL_HDR;
  1465.     __GLX_TEXIMAGE_HDR;
  1466. } __GLXtexImageHeader;
  1467.  
  1468. typedef struct {
  1469.     __GLX_RENDER_LARGE_HDR;
  1470.     __GLX_PIXEL_HDR;
  1471.     __GLX_TEXIMAGE_HDR;
  1472. } __GLXtexImageLargeHeader;
  1473.  
  1474. typedef struct {
  1475.     __GLX_PIXEL_HDR;
  1476.     __GLX_TEXIMAGE_HDR;
  1477. } __GLXdispatchTexImageHeader;
  1478.  
  1479. /*
  1480. ** Data that is specific to a glTexImage3D or glTexImage4D call.  The
  1481. ** data is sent in the following order:
  1482. **    Render or RenderLarge header
  1483. **    Pixel 3D header
  1484. **    TexImage 3D header
  1485. ** When a glTexImage3D call the size4d and woffset fields are unexamined
  1486. ** by the server.
  1487. ** Could be used by all TexImage commands and perhaps should be in the
  1488. ** future.
  1489. */
  1490. #define __GLX_TEXIMAGE_3D_HDR \
  1491.     CARD32    target B32;    \
  1492.     CARD32    level B32;    \
  1493.     CARD32    internalformat B32;    \
  1494.     CARD32    width B32;    \
  1495.     CARD32    height B32;    \
  1496.     CARD32    depth B32;    \
  1497.     CARD32    size4d B32;    \
  1498.     CARD32    border B32;    \
  1499.     CARD32    format B32;    \
  1500.     CARD32    type B32;    \
  1501.     CARD32    nullimage B32
  1502.  
  1503. #define __GLX_TEXIMAGE_3D_HDR_SIZE 44
  1504.  
  1505. #define __GLX_TEXIMAGE_3D_CMD_HDR_SIZE \
  1506.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_3D_HDR_SIZE + \
  1507.         __GLX_TEXIMAGE_3D_HDR_SIZE)
  1508.  
  1509. #define __GLX_TEXIMAGE_3D_CMD_DISPATCH_HDR_SIZE \
  1510.     (__GLX_PIXEL_3D_HDR_SIZE + __GLX_TEXIMAGE_3D_HDR_SIZE)
  1511.  
  1512. typedef struct {
  1513.     __GLX_RENDER_HDR;
  1514.     __GLX_PIXEL_3D_HDR;
  1515.     __GLX_TEXIMAGE_3D_HDR;
  1516. } __GLXtexImage3DHeader;
  1517.  
  1518. typedef struct {
  1519.     __GLX_RENDER_LARGE_HDR;
  1520.     __GLX_PIXEL_3D_HDR;
  1521.     __GLX_TEXIMAGE_3D_HDR;
  1522. } __GLXtexImage3DLargeHeader;
  1523.  
  1524. typedef struct {
  1525.     __GLX_PIXEL_3D_HDR;
  1526.     __GLX_TEXIMAGE_3D_HDR;
  1527. } __GLXdispatchTexImage3DHeader;
  1528.  
  1529. /*
  1530. ** Data that is specific to a glTexSubImage1D or glTexSubImage2D call.    The
  1531. ** data is sent in the following order:
  1532. **    Render or RenderLarge header
  1533. **    Pixel header
  1534. **    TexSubImage header
  1535. ** When a glTexSubImage1D call is made, the yoffset and height fields
  1536. ** are unexamined by the server and are  considered to be padding.
  1537. */
  1538. #define __GLX_TEXSUBIMAGE_HDR    \
  1539.     CARD32    target B32;    \
  1540.     CARD32    level B32;    \
  1541.     CARD32    xoffset B32;    \
  1542.     CARD32    yoffset B32;    \
  1543.     CARD32    width B32;    \
  1544.     CARD32    height B32;    \
  1545.     CARD32    format B32;    \
  1546.     CARD32    type B32;    \
  1547.     CARD32    nullImage    \
  1548.  
  1549. #define __GLX_TEXSUBIMAGE_HDR_SIZE 36
  1550.  
  1551. #define __GLX_TEXSUBIMAGE_CMD_HDR_SIZE \
  1552.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_TEXSUBIMAGE_HDR_SIZE)
  1553.  
  1554. #define __GLX_TEXSUBIMAGE_CMD_DISPATCH_HDR_SIZE \
  1555.     (__GLX_PIXEL_HDR_SIZE + __GLX_TEXSUBIMAGE_HDR_SIZE)
  1556.  
  1557. typedef struct {
  1558.     __GLX_RENDER_HDR;
  1559.     __GLX_PIXEL_HDR;
  1560.     __GLX_TEXSUBIMAGE_HDR;
  1561. } __GLXtexSubImageHeader;
  1562.  
  1563. typedef struct {
  1564.     __GLX_RENDER_LARGE_HDR;
  1565.     __GLX_PIXEL_HDR;
  1566.     __GLX_TEXSUBIMAGE_HDR;
  1567. } __GLXtexSubImageLargeHeader;
  1568.  
  1569. typedef struct {
  1570.     __GLX_PIXEL_HDR;
  1571.     __GLX_TEXSUBIMAGE_HDR;
  1572. } __GLXdispatchTexSubImageHeader;
  1573.  
  1574. /*
  1575. ** Data that is specific to a glTexSubImage3D and 4D calls.  The
  1576. ** data is sent in the following order:
  1577. **    Render or RenderLarge header
  1578. **    Pixel 3D header
  1579. **    TexSubImage 3D header
  1580. ** When a glTexSubImage3D call is made, the woffset and size4d fields
  1581. ** are unexamined by the server and are considered to be padding.
  1582. */
  1583. #define __GLX_TEXSUBIMAGE_3D_HDR    \
  1584.     CARD32    target B32;    \
  1585.     CARD32    level B32;    \
  1586.     CARD32    xoffset B32;    \
  1587.     CARD32    yoffset B32;    \
  1588.     CARD32    zoffset B32;    \
  1589.     CARD32    woffset B32;    \
  1590.     CARD32    width B32;    \
  1591.     CARD32    height B32;    \
  1592.     CARD32    depth B32;    \
  1593.     CARD32    size4d B32;    \
  1594.     CARD32    format B32;    \
  1595.     CARD32    type B32;    \
  1596.     CARD32    nullImage    \
  1597.  
  1598. #define __GLX_TEXSUBIMAGE_3D_HDR_SIZE 52
  1599.  
  1600. #define __GLX_TEXSUBIMAGE_3D_CMD_HDR_SIZE \
  1601.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_3D_HDR_SIZE + \
  1602.         __GLX_TEXSUBIMAGE_3D_HDR_SIZE)
  1603.  
  1604. #define __GLX_TEXSUBIMAGE_3D_CMD_DISPATCH_HDR_SIZE \
  1605.     (__GLX_PIXEL_3D_HDR_SIZE + __GLX_TEXSUBIMAGE_3D_HDR_SIZE)
  1606.  
  1607. typedef struct {
  1608.     __GLX_RENDER_HDR;
  1609.     __GLX_PIXEL_3D_HDR;
  1610.     __GLX_TEXSUBIMAGE_3D_HDR;
  1611. } __GLXtexSubImage3DHeader;
  1612.  
  1613. typedef struct {
  1614.     __GLX_RENDER_LARGE_HDR;
  1615.     __GLX_PIXEL_3D_HDR;
  1616.     __GLX_TEXSUBIMAGE_3D_HDR;
  1617. } __GLXtexSubImage3DLargeHeader;
  1618.  
  1619. typedef struct {
  1620.     __GLX_PIXEL_3D_HDR;
  1621.     __GLX_TEXSUBIMAGE_3D_HDR;
  1622. } __GLXdispatchTexSubImage3DHeader;
  1623.  
  1624. /**
  1625.  * Data that is specific to a \c glCompressedTexImage1D or
  1626.  * \c glCompressedTexImage2D call.  The data is sent in the following
  1627.  * order:
  1628.  *     - Render or RenderLarge header
  1629.  *     - CompressedTexImage header
  1630.  * 
  1631.  * When a \c glCompressedTexImage1D call is made, the \c height field is
  1632.  * not examined by the server and is considered padding.
  1633.  */
  1634.  
  1635. #define __GLX_COMPRESSED_TEXIMAGE_HDR \
  1636.     CARD32     target B32;            \
  1637.     CARD32     level B32;             \
  1638.     CARD32     internalFormat B32;    \
  1639.     CARD32     width B32;             \
  1640.     CARD32     height B32;            \
  1641.     CARD32     border B32;            \
  1642.     CARD32     imageSize B32
  1643.  
  1644. #define __GLX_COMPRESSED_TEXIMAGE_HDR_SIZE 28
  1645.  
  1646. #define __GLX_COMPRESSED_TEXIMAGE_CMD_HDR_SIZE \
  1647.     (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXIMAGE_HDR_SIZE)
  1648.  
  1649. #define __GLX_COMPRESSED_TEXIMAGE_DISPATCH_HDR_SIZE \
  1650.     (__GLX_COMPRESSED_TEXIMAGE_HDR_SIZE)
  1651.  
  1652. typedef struct {
  1653.     __GLX_RENDER_HDR;
  1654.     __GLX_COMPRESSED_TEXIMAGE_HDR;
  1655. } __GLXcompressedTexImageHeader;
  1656.  
  1657. typedef struct {
  1658.     __GLX_RENDER_LARGE_HDR;
  1659.     __GLX_COMPRESSED_TEXIMAGE_HDR;
  1660. } __GLXcompressedTexImageLargeHeader;
  1661.  
  1662. typedef struct {
  1663.     __GLX_COMPRESSED_TEXIMAGE_HDR;
  1664. } __GLXdispatchCompressedTexImageHeader;
  1665.  
  1666. /**
  1667.  * Data that is specifi to a \c glCompressedTexSubImage1D or
  1668.  * \c glCompressedTexSubImage2D call.  The data is sent in the following
  1669.  * order:
  1670.  *     - Render or RenderLarge header
  1671.  *     - CompressedTexSubImage header
  1672.  * 
  1673.  * When a \c glCompressedTexSubImage1D call is made, the \c yoffset and
  1674.  * \c height fields are not examined by the server and are considered padding.
  1675.  */
  1676.  
  1677. #define __GLX_COMPRESSED_TEXSUBIMAGE_HDR \
  1678.     CARD32     target B32;            \
  1679.     CARD32     level B32;             \
  1680.     CARD32     xoffset B32;           \
  1681.     CARD32     yoffset B32;           \
  1682.     CARD32     width B32;             \
  1683.     CARD32     height B32;            \
  1684.     CARD32     format B32;            \
  1685.     CARD32     imageSize B32
  1686.  
  1687. #define __GLX_COMPRESSED_TEXSUBIMAGE_HDR_SIZE 32
  1688.  
  1689. #define __GLX_COMPRESSED_TEXSUBIMAGE_CMD_HDR_SIZE \
  1690.     (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXSUBIMAGE_HDR_SIZE)
  1691.  
  1692. #define __GLX_COMPRESSED_TEXSUBIMAGE_DISPATCH_HDR_SIZE \
  1693.     (__GLX_COMPRESSED_TEXSUBIMAGE_HDR_SIZE)
  1694.  
  1695. typedef struct {
  1696.     __GLX_RENDER_HDR;
  1697.     __GLX_COMPRESSED_TEXSUBIMAGE_HDR;
  1698. } __GLXcompressedTexSubImageHeader;
  1699.  
  1700. typedef struct {
  1701.     __GLX_RENDER_LARGE_HDR;
  1702.     __GLX_COMPRESSED_TEXSUBIMAGE_HDR;
  1703. } __GLXcompressedTexSubImageLargeHeader;
  1704.  
  1705. typedef struct {
  1706.     __GLX_COMPRESSED_TEXSUBIMAGE_HDR;
  1707. } __GLXdispatchCompressedTexSubImageHeader;
  1708.  
  1709. /**
  1710.  * Data that is specific to a \c glCompressedTexImage3D call.  The data is
  1711.  * sent in the following order:
  1712.  *     - Render or RenderLarge header
  1713.  *     - CompressedTexImage3D header
  1714.  */
  1715.  
  1716. #define __GLX_COMPRESSED_TEXIMAGE_3D_HDR \
  1717.     CARD32     target B32;            \
  1718.     CARD32     level B32;             \
  1719.     CARD32     internalFormat B32;    \
  1720.     CARD32     width B32;             \
  1721.     CARD32     height B32;            \
  1722.     CARD32     depth B32;             \
  1723.     CARD32     border B32;            \
  1724.     CARD32     imageSize B32
  1725.  
  1726. #define __GLX_COMPRESSED_TEXIMAGE_3D_HDR_SIZE 32
  1727.  
  1728. #define __GLX_COMPRESSED_TEXIMAGE_3D_CMD_HDR_SIZE \
  1729.     (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXIMAGE_3D_HDR_SIZE)
  1730.  
  1731. #define __GLX_COMPRESSED_TEXIMAGE_3D_DISPATCH_HDR_SIZE \
  1732.     (__GLX_COMPRESSED_TEXIMAGE_3D_HDR_SIZE)
  1733.  
  1734. typedef struct {
  1735.     __GLX_RENDER_HDR;
  1736.     __GLX_COMPRESSED_TEXIMAGE_3D_HDR;
  1737. } __GLXcompressedTexImage3DHeader;
  1738.  
  1739. typedef struct {
  1740.     __GLX_RENDER_LARGE_HDR;
  1741.     __GLX_COMPRESSED_TEXIMAGE_3D_HDR;
  1742. } __GLXcompressedTexImage3DLargeHeader;
  1743.  
  1744. typedef struct {
  1745.     __GLX_COMPRESSED_TEXIMAGE_3D_HDR;
  1746. } __GLXdispatchCompressedTexImage3DHeader;
  1747.  
  1748. /**
  1749.  * Data that is specifi to a \c glCompressedTexSubImage3D call.  The data is
  1750.  * sent in the following order:
  1751.  *     - Render or RenderLarge header
  1752.  *     - CompressedTexSubImage3D header
  1753.  */
  1754.  
  1755. #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR \
  1756.     CARD32     target B32;            \
  1757.     CARD32     level B32;             \
  1758.     CARD32     xoffset B32;           \
  1759.     CARD32     yoffset B32;           \
  1760.     CARD32     zoffset B32;           \
  1761.     CARD32     width B32;             \
  1762.     CARD32     height B32;            \
  1763.     CARD32     depth B32;             \
  1764.     CARD32     format B32;            \
  1765.     CARD32     imageSize B32
  1766.  
  1767. #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR_SIZE 32
  1768.  
  1769. #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_CMD_HDR_SIZE \
  1770.     (__GLX_RENDER_HDR_SIZE + __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR_SIZE)
  1771.  
  1772. #define __GLX_COMPRESSED_TEXSUBIMAGE_3D_DISPATCH_HDR_SIZE \
  1773.     (__GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR_SIZE)
  1774.  
  1775. typedef struct {
  1776.     __GLX_RENDER_HDR;
  1777.     __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR;
  1778. } __GLXcompressedTexSubImage3DHeader;
  1779.  
  1780. typedef struct {
  1781.     __GLX_RENDER_LARGE_HDR;
  1782.     __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR;
  1783. } __GLXcompressedTexSubImage3DLargeHeader;
  1784.  
  1785. typedef struct {
  1786.     __GLX_COMPRESSED_TEXSUBIMAGE_3D_HDR;
  1787. } __GLXdispatchCompressedTexSubImage3DHeader;
  1788.  
  1789. /*
  1790. ** Data that is specific to a glDrawPixels call.  The data is sent in the
  1791. ** following order:
  1792. **    Render or RenderLarge header
  1793. **    Pixel header
  1794. **    DrawPixels header
  1795. */
  1796. #define __GLX_DRAWPIXELS_HDR \
  1797.     CARD32    width B32;   \
  1798.     CARD32    height B32;  \
  1799.     CARD32    format B32;  \
  1800.     CARD32    type B32
  1801.  
  1802. #define __GLX_DRAWPIXELS_HDR_SIZE 16
  1803.  
  1804. #define __GLX_DRAWPIXELS_CMD_HDR_SIZE \
  1805.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_DRAWPIXELS_HDR_SIZE)
  1806.  
  1807. #define __GLX_DRAWPIXELS_CMD_DISPATCH_HDR_SIZE \
  1808.     (__GLX_PIXEL_HDR_SIZE + __GLX_DRAWPIXELS_HDR_SIZE)
  1809.  
  1810. typedef struct {
  1811.     __GLX_RENDER_HDR;
  1812.     __GLX_PIXEL_HDR;
  1813.     __GLX_DRAWPIXELS_HDR;
  1814. } __GLXdrawPixelsHeader;
  1815.  
  1816. typedef struct {
  1817.     __GLX_RENDER_LARGE_HDR;
  1818.     __GLX_PIXEL_HDR;
  1819.     __GLX_DRAWPIXELS_HDR;
  1820. } __GLXdrawPixelsLargeHeader;
  1821.  
  1822. typedef struct {
  1823.     __GLX_PIXEL_HDR;
  1824.     __GLX_DRAWPIXELS_HDR;
  1825. } __GLXdispatchDrawPixelsHeader;
  1826.  
  1827. /*
  1828. ** Data that is specific to a glConvolutionFilter1D or glConvolutionFilter2D
  1829. ** call.  The data is sent in the following order:
  1830. **    Render or RenderLarge header
  1831. **    Pixel header
  1832. **    ConvolutionFilter header
  1833. ** When a glConvolutionFilter1D call the height field is unexamined by the server.
  1834. */
  1835. #define __GLX_CONV_FILT_HDR    \
  1836.     CARD32    target B32;    \
  1837.     CARD32    internalformat B32;    \
  1838.     CARD32    width B32;    \
  1839.     CARD32    height B32;    \
  1840.     CARD32    format B32;    \
  1841.     CARD32    type B32
  1842.  
  1843. #define __GLX_CONV_FILT_HDR_SIZE 24
  1844.  
  1845. #define __GLX_CONV_FILT_CMD_HDR_SIZE \
  1846.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_CONV_FILT_HDR_SIZE)
  1847.  
  1848. #define __GLX_CONV_FILT_CMD_DISPATCH_HDR_SIZE \
  1849.     (__GLX_PIXEL_HDR_SIZE + __GLX_CONV_FILT_HDR_SIZE)
  1850. typedef struct {
  1851.     __GLX_RENDER_HDR;
  1852.     __GLX_PIXEL_HDR;
  1853.     __GLX_CONV_FILT_HDR;
  1854. } __GLXConvolutionFilterHeader;
  1855.  
  1856. typedef struct {
  1857.     __GLX_RENDER_LARGE_HDR;
  1858.     __GLX_PIXEL_HDR;
  1859.     __GLX_CONV_FILT_HDR;
  1860. } __GLXConvolutionFilterLargeHeader;
  1861.  
  1862. typedef struct {
  1863.     __GLX_PIXEL_HDR;
  1864.     __GLX_CONV_FILT_HDR;
  1865. } __GLXdispatchConvolutionFilterHeader;
  1866.  
  1867. /*
  1868. ** Data that is specific to a glDrawArraysEXT call.  The data is sent in the
  1869. ** following order:
  1870. **    Render or RenderLarge header
  1871. **    Draw Arrays header
  1872. **    a variable number of Component headers
  1873. **    vertex data for each component type
  1874. */
  1875.  
  1876. #define __GLX_DRAWARRAYS_HDR \
  1877.     CARD32    numVertexes B32; \
  1878.     CARD32    numComponents B32; \
  1879.     CARD32    primType B32
  1880.  
  1881. #define __GLX_DRAWARRAYS_HDR_SIZE 12
  1882.  
  1883. #define __GLX_DRAWARRAYS_CMD_HDR_SIZE \
  1884.     (__GLX_RENDER_HDR_SIZE + __GLX_DRAWARRAYS_HDR_SIZE)
  1885.  
  1886. typedef struct {
  1887.     __GLX_RENDER_HDR;
  1888.     __GLX_DRAWARRAYS_HDR;
  1889. } __GLXdrawArraysHeader;
  1890.  
  1891. typedef struct {
  1892.     __GLX_RENDER_LARGE_HDR;
  1893.     __GLX_DRAWARRAYS_HDR;
  1894. } __GLXdrawArraysLargeHeader;
  1895.  
  1896. typedef struct {
  1897.     __GLX_DRAWARRAYS_HDR;
  1898. } __GLXdispatchDrawArraysHeader;
  1899.  
  1900. #define __GLX_COMPONENT_HDR \
  1901.     CARD32    datatype B32; \
  1902.     INT32    numVals B32; \
  1903.     CARD32    component B32
  1904.  
  1905. typedef struct {
  1906.     __GLX_COMPONENT_HDR;
  1907. } __GLXdispatchDrawArraysComponentHeader;
  1908.  
  1909. #define __GLX_COMPONENT_HDR_SIZE 12
  1910.  
  1911. /*
  1912. ** Data that is specific to a glColorTable call
  1913. **    The data is sent in the following order:
  1914. **    Render or RenderLarge header
  1915. **    Pixel header
  1916. **    ColorTable header
  1917. */
  1918.  
  1919. #define __GLX_COLOR_TABLE_HDR         \
  1920.     CARD32    target B32;        \
  1921.     CARD32    internalformat B32; \
  1922.     CARD32    width B32;        \
  1923.     CARD32    format B32;        \
  1924.     CARD32    type   B32
  1925.  
  1926. #define __GLX_COLOR_TABLE_HDR_SIZE 20
  1927.  
  1928. #define __GLX_COLOR_TABLE_CMD_HDR_SIZE \
  1929.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + __GLX_COLOR_TABLE_HDR_SIZE)
  1930.  
  1931. typedef struct {
  1932.     __GLX_RENDER_HDR;
  1933.     __GLX_PIXEL_HDR;
  1934.     __GLX_COLOR_TABLE_HDR;
  1935. } __GLXColorTableHeader;
  1936.  
  1937. typedef struct {
  1938.     __GLX_RENDER_LARGE_HDR;
  1939.     __GLX_PIXEL_HDR;
  1940.     __GLX_COLOR_TABLE_HDR;
  1941. } __GLXColorTableLargeHeader;
  1942.  
  1943. typedef struct {
  1944.     __GLX_PIXEL_HDR;
  1945.     __GLX_COLOR_TABLE_HDR;
  1946. } __GLXdispatchColorTableHeader;
  1947.  
  1948. /*
  1949. ** Data that is specific to a glColorSubTable call
  1950. **    The data is sent in the following order:
  1951. **    Render or RenderLarge header
  1952. **    Pixel header
  1953. **    ColorTable header
  1954. */
  1955.  
  1956. #define __GLX_COLOR_SUBTABLE_HDR    \
  1957.     CARD32    target B32;        \
  1958.     CARD32    start B32;         \
  1959.     CARD32    count B32;        \
  1960.     CARD32    format B32;        \
  1961.     CARD32    type   B32
  1962.  
  1963. #define __GLX_COLOR_SUBTABLE_HDR_SIZE 20
  1964.  
  1965. #define __GLX_COLOR_SUBTABLE_CMD_HDR_SIZE \
  1966.     (__GLX_RENDER_HDR_SIZE + __GLX_PIXEL_HDR_SIZE + \
  1967.      __GLX_COLOR_SUBTABLE_HDR_SIZE)
  1968.  
  1969. typedef struct {
  1970.     __GLX_RENDER_HDR;
  1971.     __GLX_PIXEL_HDR;
  1972.     __GLX_COLOR_SUBTABLE_HDR;
  1973. } __GLXColorSubTableHeader;
  1974.  
  1975. typedef struct {
  1976.     __GLX_RENDER_LARGE_HDR;
  1977.     __GLX_PIXEL_HDR;
  1978.     __GLX_COLOR_SUBTABLE_HDR;
  1979. } __GLXColorSubTableLargeHeader;
  1980.  
  1981. typedef struct {
  1982.     __GLX_PIXEL_HDR;
  1983.     __GLX_COLOR_SUBTABLE_HDR;
  1984. } __GLXdispatchColorSubTableHeader;
  1985.  
  1986. #define GLX_WINDOW_TYPE        1
  1987. #define GLX_PIXMAP_TYPE        2
  1988. #define GLX_VIDEO_SOURCE_TYPE    3
  1989. #define GLX_PBUFFER_TYPE    4
  1990. /* 5 is for DM_PBUFFER */
  1991. #define GLX_GLXWINDOW_TYPE    6    
  1992.  
  1993. /*****************************************************************************/
  1994.  
  1995. /*
  1996. ** Restore these definitions back to the typedefs in glx.h
  1997. */
  1998. #undef GLXContextID
  1999. #undef GLXPixmap
  2000. #undef GLXDrawable
  2001. #undef GLXPbuffer
  2002. #undef GLXWindow
  2003. #undef GLXFBConfigID
  2004. #undef GLXFBConfigIDSGIX
  2005. #undef GLXPbufferSGIX
  2006.  
  2007.  
  2008. /* Opcodes for GLX commands */
  2009.  
  2010. #define X_GLXRender                       1
  2011. #define X_GLXRenderLarge                  2
  2012. #define X_GLXCreateContext                3
  2013. #define X_GLXDestroyContext               4
  2014. #define X_GLXMakeCurrent                  5
  2015. #define X_GLXIsDirect                     6
  2016. #define X_GLXQueryVersion                 7
  2017. #define X_GLXWaitGL                       8
  2018. #define X_GLXWaitX                        9
  2019. #define X_GLXCopyContext                 10
  2020. #define X_GLXSwapBuffers                 11
  2021. #define X_GLXUseXFont                    12
  2022. #define X_GLXCreateGLXPixmap             13
  2023. #define X_GLXGetVisualConfigs            14
  2024. #define X_GLXDestroyGLXPixmap            15
  2025. #define X_GLXVendorPrivate               16
  2026. #define X_GLXVendorPrivateWithReply      17
  2027. #define X_GLXQueryExtensionsString       18
  2028. #define X_GLXQueryServerString           19
  2029. #define X_GLXClientInfo                  20
  2030. #define X_GLXGetFBConfigs                21
  2031. #define X_GLXCreatePixmap                22
  2032. #define X_GLXDestroyPixmap               23
  2033. #define X_GLXCreateNewContext            24
  2034. #define X_GLXQueryContext                25
  2035. #define X_GLXMakeContextCurrent          26
  2036. #define X_GLXCreatePbuffer               27
  2037. #define X_GLXDestroyPbuffer              28
  2038. #define X_GLXGetDrawableAttributes       29
  2039. #define X_GLXChangeDrawableAttributes    30
  2040. #define X_GLXCreateWindow                31
  2041. #define X_GLXDestroyWindow               32
  2042.  
  2043.  
  2044. /* Opcodes for single commands (part of GLX command space) */
  2045.  
  2046. #define X_GLsop_NewList                    101
  2047. #define X_GLsop_EndList                    102
  2048. #define X_GLsop_DeleteLists                103
  2049. #define X_GLsop_GenLists                   104
  2050. #define X_GLsop_FeedbackBuffer             105
  2051. #define X_GLsop_SelectBuffer               106
  2052. #define X_GLsop_RenderMode                 107
  2053. #define X_GLsop_Finish                     108
  2054. #define X_GLsop_Flush                      142
  2055. #define X_GLsop_PixelStoref                109
  2056. #define X_GLsop_PixelStorei                110
  2057. #define X_GLsop_ReadPixels                 111
  2058. #define X_GLsop_GetBooleanv                112
  2059. #define X_GLsop_GetClipPlane               113
  2060. #define X_GLsop_GetDoublev                 114
  2061. #define X_GLsop_GetError                   115
  2062. #define X_GLsop_GetFloatv                  116
  2063. #define X_GLsop_GetIntegerv                117
  2064. #define X_GLsop_GetLightfv                 118
  2065. #define X_GLsop_GetLightiv                 119
  2066. #define X_GLsop_GetMapdv                   120
  2067. #define X_GLsop_GetMapfv                   121
  2068. #define X_GLsop_GetMapiv                   122
  2069. #define X_GLsop_GetMaterialfv              123
  2070. #define X_GLsop_GetMaterialiv              124
  2071. #define X_GLsop_GetPixelMapfv              125
  2072. #define X_GLsop_GetPixelMapuiv             126
  2073. #define X_GLsop_GetPixelMapusv             127
  2074. #define X_GLsop_GetPolygonStipple          128
  2075. #define X_GLsop_GetString                  129
  2076. #define X_GLsop_GetTexEnvfv                130
  2077. #define X_GLsop_GetTexEnviv                131
  2078. #define X_GLsop_GetTexGendv                132
  2079. #define X_GLsop_GetTexGenfv                133
  2080. #define X_GLsop_GetTexGeniv                134
  2081. #define X_GLsop_GetTexImage                135
  2082. #define X_GLsop_GetTexParameterfv          136
  2083. #define X_GLsop_GetTexParameteriv          137
  2084. #define X_GLsop_GetTexLevelParameterfv     138
  2085. #define X_GLsop_GetTexLevelParameteriv     139
  2086. #define X_GLsop_IsEnabled                  140
  2087. #define X_GLsop_IsList                     141
  2088. #define X_GLsop_AreTexturesResident        143
  2089. #define X_GLsop_DeleteTextures             144
  2090. #define X_GLsop_GenTextures                145
  2091. #define X_GLsop_IsTexture                  146
  2092. #define X_GLsop_GetColorTable              147
  2093. #define X_GLsop_GetColorTableParameterfv   148
  2094. #define X_GLsop_GetColorTableParameteriv   149
  2095. #define X_GLsop_GetConvolutionFilter       150
  2096. #define X_GLsop_GetConvolutionParameterfv  151
  2097. #define X_GLsop_GetConvolutionParameteriv  152
  2098. #define X_GLsop_GetSeparableFilter         153
  2099. #define X_GLsop_GetHistogram               154
  2100. #define X_GLsop_GetHistogramParameterfv    155
  2101. #define X_GLsop_GetHistogramParameteriv    156
  2102. #define X_GLsop_GetMinmax                  157
  2103. #define X_GLsop_GetMinmaxParameterfv       158
  2104. #define X_GLsop_GetMinmaxParameteriv       159
  2105. #define X_GLsop_GetCompressedTexImage      160
  2106.  
  2107.  
  2108. /* Opcodes for rendering commands */
  2109.  
  2110. #define X_GLrop_CallList                     1
  2111. #define X_GLrop_CallLists                    2
  2112. #define X_GLrop_ListBase                     3
  2113. #define X_GLrop_Begin                        4
  2114. #define X_GLrop_Bitmap                       5
  2115. #define X_GLrop_Color3bv                     6
  2116. #define X_GLrop_Color3dv                     7
  2117. #define X_GLrop_Color3fv                     8
  2118. #define X_GLrop_Color3iv                     9
  2119. #define X_GLrop_Color3sv                    10
  2120. #define X_GLrop_Color3ubv                   11
  2121. #define X_GLrop_Color3uiv                   12
  2122. #define X_GLrop_Color3usv                   13
  2123. #define X_GLrop_Color4bv                    14
  2124. #define X_GLrop_Color4dv                    15
  2125. #define X_GLrop_Color4fv                    16
  2126. #define X_GLrop_Color4iv                    17
  2127. #define X_GLrop_Color4sv                    18
  2128. #define X_GLrop_Color4ubv                   19
  2129. #define X_GLrop_Color4uiv                   20
  2130. #define X_GLrop_Color4usv                   21
  2131. #define X_GLrop_EdgeFlagv                   22
  2132. #define X_GLrop_End                         23
  2133. #define X_GLrop_Indexdv                     24
  2134. #define X_GLrop_Indexfv                     25
  2135. #define X_GLrop_Indexiv                     26
  2136. #define X_GLrop_Indexsv                     27
  2137. #define X_GLrop_Normal3bv                   28
  2138. #define X_GLrop_Normal3dv                   29
  2139. #define X_GLrop_Normal3fv                   30
  2140. #define X_GLrop_Normal3iv                   31
  2141. #define X_GLrop_Normal3sv                   32
  2142. #define X_GLrop_RasterPos2dv                33
  2143. #define X_GLrop_RasterPos2fv                34
  2144. #define X_GLrop_RasterPos2iv                35
  2145. #define X_GLrop_RasterPos2sv                36
  2146. #define X_GLrop_RasterPos3dv                37
  2147. #define X_GLrop_RasterPos3fv                38
  2148. #define X_GLrop_RasterPos3iv                39
  2149. #define X_GLrop_RasterPos3sv                40
  2150. #define X_GLrop_RasterPos4dv                41
  2151. #define X_GLrop_RasterPos4fv                42
  2152. #define X_GLrop_RasterPos4iv                43
  2153. #define X_GLrop_RasterPos4sv                44
  2154. #define X_GLrop_Rectdv                      45
  2155. #define X_GLrop_Rectfv                      46
  2156. #define X_GLrop_Rectiv                      47
  2157. #define X_GLrop_Rectsv                      48
  2158. #define X_GLrop_TexCoord1dv                 49
  2159. #define X_GLrop_TexCoord1fv                 50
  2160. #define X_GLrop_TexCoord1iv                 51
  2161. #define X_GLrop_TexCoord1sv                 52
  2162. #define X_GLrop_TexCoord2dv                 53
  2163. #define X_GLrop_TexCoord2fv                 54
  2164. #define X_GLrop_TexCoord2iv                 55
  2165. #define X_GLrop_TexCoord2sv                 56
  2166. #define X_GLrop_TexCoord3dv                 57
  2167. #define X_GLrop_TexCoord3fv                 58
  2168. #define X_GLrop_TexCoord3iv                 59
  2169. #define X_GLrop_TexCoord3sv                 60
  2170. #define X_GLrop_TexCoord4dv                 61
  2171. #define X_GLrop_TexCoord4fv                 62
  2172. #define X_GLrop_TexCoord4iv                 63
  2173. #define X_GLrop_TexCoord4sv                 64
  2174. #define X_GLrop_Vertex2dv                   65
  2175. #define X_GLrop_Vertex2fv                   66
  2176. #define X_GLrop_Vertex2iv                   67
  2177. #define X_GLrop_Vertex2sv                   68
  2178. #define X_GLrop_Vertex3dv                   69
  2179. #define X_GLrop_Vertex3fv                   70
  2180. #define X_GLrop_Vertex3iv                   71
  2181. #define X_GLrop_Vertex3sv                   72
  2182. #define X_GLrop_Vertex4dv                   73
  2183. #define X_GLrop_Vertex4fv                   74
  2184. #define X_GLrop_Vertex4iv                   75
  2185. #define X_GLrop_Vertex4sv                   76
  2186. #define X_GLrop_ClipPlane                   77
  2187. #define X_GLrop_ColorMaterial               78
  2188. #define X_GLrop_CullFace                    79
  2189. #define X_GLrop_Fogf                        80
  2190. #define X_GLrop_Fogfv                       81
  2191. #define X_GLrop_Fogi                        82
  2192. #define X_GLrop_Fogiv                       83
  2193. #define X_GLrop_FrontFace                   84
  2194. #define X_GLrop_Hint                        85
  2195. #define X_GLrop_Lightf                      86
  2196. #define X_GLrop_Lightfv                     87
  2197. #define X_GLrop_Lighti                      88
  2198. #define X_GLrop_Lightiv                     89
  2199. #define X_GLrop_LightModelf                 90
  2200. #define X_GLrop_LightModelfv                91
  2201. #define X_GLrop_LightModeli                 92
  2202. #define X_GLrop_LightModeliv                93
  2203. #define X_GLrop_LineStipple                 94
  2204. #define X_GLrop_LineWidth                   95
  2205. #define X_GLrop_Materialf                   96
  2206. #define X_GLrop_Materialfv                  97
  2207. #define X_GLrop_Materiali                   98
  2208. #define X_GLrop_Materialiv                  99
  2209. #define X_GLrop_PointSize                  100
  2210. #define X_GLrop_PolygonMode                101
  2211. #define X_GLrop_PolygonStipple             102
  2212. #define X_GLrop_Scissor                    103
  2213. #define X_GLrop_ShadeModel                 104
  2214. #define X_GLrop_TexParameterf              105
  2215. #define X_GLrop_TexParameterfv             106
  2216. #define X_GLrop_TexParameteri              107
  2217. #define X_GLrop_TexParameteriv             108
  2218. #define X_GLrop_TexImage1D                 109
  2219. #define X_GLrop_TexImage2D                 110
  2220. #define X_GLrop_TexEnvf                    111
  2221. #define X_GLrop_TexEnvfv                   112
  2222. #define X_GLrop_TexEnvi                    113
  2223. #define X_GLrop_TexEnviv                   114
  2224. #define X_GLrop_TexGend                    115
  2225. #define X_GLrop_TexGendv                   116
  2226. #define X_GLrop_TexGenf                    117
  2227. #define X_GLrop_TexGenfv                   118
  2228. #define X_GLrop_TexGeni                    119
  2229. #define X_GLrop_TexGeniv                   120
  2230. #define X_GLrop_InitNames                  121
  2231. #define X_GLrop_LoadName                   122
  2232. #define X_GLrop_PassThrough                123
  2233. #define X_GLrop_PopName                    124
  2234. #define X_GLrop_PushName                   125
  2235. #define X_GLrop_DrawBuffer                 126
  2236. #define X_GLrop_Clear                      127
  2237. #define X_GLrop_ClearAccum                 128
  2238. #define X_GLrop_ClearIndex                 129
  2239. #define X_GLrop_ClearColor                 130
  2240. #define X_GLrop_ClearStencil               131
  2241. #define X_GLrop_ClearDepth                 132
  2242. #define X_GLrop_StencilMask                133
  2243. #define X_GLrop_ColorMask                  134
  2244. #define X_GLrop_DepthMask                  135
  2245. #define X_GLrop_IndexMask                  136
  2246. #define X_GLrop_Accum                      137
  2247. #define X_GLrop_Disable                    138
  2248. #define X_GLrop_Enable                     139
  2249. #define X_GLrop_PopAttrib                  141
  2250. #define X_GLrop_PushAttrib                 142
  2251. #define X_GLrop_Map1d                      143
  2252. #define X_GLrop_Map1f                      144
  2253. #define X_GLrop_Map2d                      145
  2254. #define X_GLrop_Map2f                      146
  2255. #define X_GLrop_MapGrid1d                  147
  2256. #define X_GLrop_MapGrid1f                  148
  2257. #define X_GLrop_MapGrid2d                  149
  2258. #define X_GLrop_MapGrid2f                  150
  2259. #define X_GLrop_EvalCoord1dv               151
  2260. #define X_GLrop_EvalCoord1fv               152
  2261. #define X_GLrop_EvalCoord2dv               153
  2262. #define X_GLrop_EvalCoord2fv               154
  2263. #define X_GLrop_EvalMesh1                  155
  2264. #define X_GLrop_EvalPoint1                 156
  2265. #define X_GLrop_EvalMesh2                  157
  2266. #define X_GLrop_EvalPoint2                 158
  2267. #define X_GLrop_AlphaFunc                  159
  2268. #define X_GLrop_BlendFunc                  160
  2269. #define X_GLrop_LogicOp                    161
  2270. #define X_GLrop_StencilFunc                162
  2271. #define X_GLrop_StencilOp                  163
  2272. #define X_GLrop_DepthFunc                  164
  2273. #define X_GLrop_PixelZoom                  165
  2274. #define X_GLrop_PixelTransferf             166
  2275. #define X_GLrop_PixelTransferi             167
  2276. #define X_GLrop_PixelMapfv                 168
  2277. #define X_GLrop_PixelMapuiv                169
  2278. #define X_GLrop_PixelMapusv                170
  2279. #define X_GLrop_ReadBuffer                 171
  2280. #define X_GLrop_CopyPixels                 172
  2281. #define X_GLrop_DrawPixels                 173
  2282. #define X_GLrop_DepthRange                 174
  2283. #define X_GLrop_Frustum                    175
  2284. #define X_GLrop_LoadIdentity               176
  2285. #define X_GLrop_LoadMatrixf                177
  2286. #define X_GLrop_LoadMatrixd                178
  2287. #define X_GLrop_MatrixMode                 179
  2288. #define X_GLrop_MultMatrixf                180
  2289. #define X_GLrop_MultMatrixd                181
  2290. #define X_GLrop_Ortho                      182
  2291. #define X_GLrop_PopMatrix                  183
  2292. #define X_GLrop_PushMatrix                 184
  2293. #define X_GLrop_Rotated                    185
  2294. #define X_GLrop_Rotatef                    186
  2295. #define X_GLrop_Scaled                     187
  2296. #define X_GLrop_Scalef                     188
  2297. #define X_GLrop_Translated                 189
  2298. #define X_GLrop_Translatef                 190
  2299. #define X_GLrop_Viewport                   191
  2300. #define X_GLrop_DrawArrays                 193
  2301. #define X_GLrop_PolygonOffset              192
  2302. #define X_GLrop_CopyTexImage1D             4119
  2303. #define X_GLrop_CopyTexImage2D             4120
  2304. #define X_GLrop_CopyTexSubImage1D          4121
  2305. #define X_GLrop_CopyTexSubImage2D          4122
  2306. #define X_GLrop_TexSubImage1D              4099
  2307. #define X_GLrop_TexSubImage2D              4100
  2308. #define X_GLrop_BindTexture                4117
  2309. #define X_GLrop_PrioritizeTextures         4118
  2310. #define X_GLrop_Indexubv                   194
  2311. #define X_GLrop_BlendColor                 4096
  2312. #define X_GLrop_BlendEquation              4097
  2313. #define X_GLrop_ColorTable                 2053
  2314. #define X_GLrop_ColorTableParameterfv      2054
  2315. #define X_GLrop_ColorTableParameteriv      2055
  2316. #define X_GLrop_CopyColorTable             2056
  2317. #define X_GLrop_ColorSubTable              195
  2318. #define X_GLrop_CopyColorSubTable          196
  2319. #define X_GLrop_ConvolutionFilter1D        4101
  2320. #define X_GLrop_ConvolutionFilter2D        4102
  2321. #define X_GLrop_ConvolutionParameterf      4103
  2322. #define X_GLrop_ConvolutionParameterfv     4104
  2323. #define X_GLrop_ConvolutionParameteri      4105
  2324. #define X_GLrop_ConvolutionParameteriv     4106
  2325. #define X_GLrop_CopyConvolutionFilter1D    4107
  2326. #define X_GLrop_CopyConvolutionFilter2D    4108
  2327. #define X_GLrop_SeparableFilter2D          4109
  2328. #define X_GLrop_Histogram                  4110
  2329. #define X_GLrop_Minmax                     4111
  2330. #define X_GLrop_ResetHistogram             4112
  2331. #define X_GLrop_ResetMinmax                4113
  2332. #define X_GLrop_TexImage3D                 4114
  2333. #define X_GLrop_TexSubImage3D              4115
  2334. #define X_GLrop_CopyTexSubImage3D          4123
  2335. #define X_GLrop_DrawArraysEXT              4116
  2336.  
  2337. /* Added for core GL version 1.3 */
  2338.  
  2339. #define X_GLrop_ActiveTextureARB            197
  2340. #define X_GLrop_MultiTexCoord1dvARB         198
  2341. #define X_GLrop_MultiTexCoord1fvARB         199
  2342. #define X_GLrop_MultiTexCoord1ivARB         200
  2343. #define X_GLrop_MultiTexCoord1svARB         201
  2344. #define X_GLrop_MultiTexCoord2dvARB         202
  2345. #define X_GLrop_MultiTexCoord2fvARB         203
  2346. #define X_GLrop_MultiTexCoord2ivARB         204
  2347. #define X_GLrop_MultiTexCoord2svARB         205
  2348. #define X_GLrop_MultiTexCoord3dvARB         206
  2349. #define X_GLrop_MultiTexCoord3fvARB         207
  2350. #define X_GLrop_MultiTexCoord3ivARB         208
  2351. #define X_GLrop_MultiTexCoord3svARB         209
  2352. #define X_GLrop_MultiTexCoord4dvARB         210
  2353. #define X_GLrop_MultiTexCoord4fvARB         211
  2354. #define X_GLrop_MultiTexCoord4ivARB         212
  2355. #define X_GLrop_MultiTexCoord4svARB         213
  2356. #define X_GLrop_CompressedTexImage1D        214
  2357. #define X_GLrop_CompressedTexImage2D        215
  2358. #define X_GLrop_CompressedTexImage3D        216
  2359. #define X_GLrop_CompressedTexSubImage1D     217
  2360. #define X_GLrop_CompressedTexSubImage2D     218
  2361. #define X_GLrop_CompressedTexSubImage3D     219
  2362. #define X_GLrop_SampleCoverageARB           229
  2363.  
  2364. /* Added for core GL version 1.4 */
  2365.  
  2366. #define X_GLrop_WindowPos3fARB              230
  2367. #define X_GLrop_FogCoordfv                  4124
  2368. #define X_GLrop_FogCoorddv                  4125
  2369. #define X_GLrop_PointParameterfARB          2065
  2370. #define X_GLrop_PointParameterfvARB         2066
  2371. #define X_GLrop_SecondaryColor3bv           4126
  2372. #define X_GLrop_SecondaryColor3sv           4127
  2373. #define X_GLrop_SecondaryColor3iv           4128
  2374. #define X_GLrop_SecondaryColor3fv           4129
  2375. #define X_GLrop_SecondaryColor3dv           4130
  2376. #define X_GLrop_SecondaryColor3ubv          4131
  2377. #define X_GLrop_SecondaryColor3usv          4132
  2378. #define X_GLrop_SecondaryColor3uiv          4133
  2379. #define X_GLrop_BlendFuncSeparate           4134
  2380. #define X_GLrop_PointParameteri             4221
  2381. #define X_GLrop_PointParameteriv            4222
  2382.  
  2383. /* Added for core GL version 1.5 */
  2384. /* XXX opcodes not defined in the spec */
  2385.  
  2386. /* Opcodes for Vendor Private commands */
  2387.  
  2388.  
  2389. #define X_GLvop_GetConvolutionFilterEXT        1
  2390. #define X_GLvop_GetConvolutionParameterfvEXT   2
  2391. #define X_GLvop_GetConvolutionParameterivEXT   3
  2392. #define X_GLvop_GetSeparableFilterEXT          4
  2393. #define X_GLvop_GetHistogramEXT                5
  2394. #define X_GLvop_GetHistogramParameterfvEXT     6
  2395. #define X_GLvop_GetHistogramParameterivEXT     7
  2396. #define X_GLvop_GetMinmaxEXT                   8
  2397. #define X_GLvop_GetMinmaxParameterfvEXT        9
  2398. #define X_GLvop_GetMinmaxParameterivEXT        10
  2399. #define X_GLvop_AreTexturesResidentEXT         11
  2400. #define X_GLvop_DeleteTexturesEXT              12
  2401. #define X_GLvop_GenTexturesEXT                 13
  2402. #define X_GLvop_IsTextureEXT                   14
  2403. #define X_GLvop_GetCombinerInputParameterfvNV  1270
  2404. #define X_GLvop_GetCombinerInputParameterivNV  1271
  2405. #define X_GLvop_GetCombinerOutputParameterfvNV 1272
  2406. #define X_GLvop_GetCombinerOutputParameterivNV 1273
  2407. #define X_GLvop_GetFinalCombinerOutputParameterfvNV 1274
  2408. #define X_GLvop_GetFinalCombinerOutputParameterivNV 1275
  2409. #define X_GLvop_DeleteFenceNV                  1276
  2410. #define X_GLvop_GenFencesNV                    1277
  2411. #define X_GLvop_IsFenceNV                      1278
  2412. #define X_GLvop_TestFenceNV                    1279
  2413. #define X_GLvop_GetFenceivNV                   1280
  2414. #define X_GLvop_AreProgramsResidentNV          1293
  2415. #define X_GLvop_DeleteProgramARB               1294
  2416. #define X_GLvop_GenProgramsARB                 1295
  2417. #define X_GLvop_GetProgramEnvParameterfvARB    1296
  2418. #define X_GLvop_GetProgramEnvParameterdvARB    1297
  2419. #define X_GLvop_GetProgramEnvParameterivNV     1298
  2420. #define X_GLvop_GetProgramStringNV             1299
  2421. #define X_GLvop_GetTrackMatrixivNV             1300
  2422. #define X_GLvop_GetVertexAttribdvARB           1301
  2423. #define X_GLvop_GetVertexAttribfvARB           1302
  2424. #define X_GLvop_GetVertexAttribivARB           1303
  2425. #define X_GLvop_IsProgramARB                   1304
  2426. #define X_GLvop_GetProgramLocalParameterfvARB  1305
  2427. #define X_GLvop_GetProgramLocalParameterdvARB  1306
  2428. #define X_GLvop_GetProgramivARB                1307
  2429. #define X_GLvop_GetProgramStringARB            1308
  2430. #define X_GLvop_GetProgramNamedParameter4fvNV  1310
  2431. #define X_GLvop_GetProgramNamedParameter4dvNV  1311
  2432. #define X_GLvop_SampleMaskSGIS                 2048
  2433. #define X_GLvop_SamplePatternSGIS              2049
  2434. #define X_GLvop_GetDetailTexFuncSGIS           4096
  2435. #define X_GLvop_GetSharpenTexFuncSGIS          4097
  2436. #define X_GLvop_GetColorTableSGI               4098
  2437. #define X_GLvop_GetColorTableParameterfvSGI    4099
  2438. #define X_GLvop_GetColorTableParameterivSGI    4100
  2439. #define X_GLvop_GetTexFilterFuncSGIS           4101
  2440. #define X_GLvop_GetInstrumentsSGIX             4102
  2441. #define X_GLvop_InstrumentsBufferSGIX          4103
  2442. #define X_GLvop_PollInstrumentsSGIX            4104
  2443. #define X_GLvop_FlushRasterSGIX                4105
  2444.  
  2445. /* Opcodes for GLX vendor private commands */
  2446.  
  2447. #define X_GLXvop_QueryContextInfoEXT            1024
  2448. #define X_GLXvop_BindTexImageEXT                1330
  2449. #define X_GLXvop_ReleaseTexImageEXT             1331
  2450. #define X_GLXvop_SwapIntervalSGI                65536
  2451. #define X_GLXvop_MakeCurrentReadSGI             65537
  2452. #define X_GLXvop_CreateGLXVideoSourceSGIX       65538
  2453. #define X_GLXvop_DestroyGLXVideoSourceSGIX      65539
  2454. #define X_GLXvop_GetFBConfigsSGIX               65540
  2455. #define X_GLXvop_CreateContextWithConfigSGIX    65541
  2456. #define X_GLXvop_CreateGLXPixmapWithConfigSGIX  65542
  2457. #define X_GLXvop_CreateGLXPbufferSGIX           65543
  2458. #define X_GLXvop_DestroyGLXPbufferSGIX          65544
  2459. #define X_GLXvop_ChangeDrawableAttributesSGIX   65545
  2460. #define X_GLXvop_GetDrawableAttributesSGIX      65546
  2461. #define X_GLXvop_JoinSwapGroupSGIX              65547
  2462. #define X_GLXvop_BindSwapBarrierSGIX            65548
  2463. #define X_GLXvop_QueryMaxSwapBarriersSGIX       65549
  2464. #define X_GLXvop_QueryHyperpipeNetworkSGIX      65550
  2465. #define X_GLXvop_QueryHyperpipeConfigSGIX       65551
  2466. #define X_GLXvop_HyperpipeConfigSGIX            65552
  2467. #define X_GLXvop_DestroyHyperpipeConfigSGIX     65553
  2468.  
  2469. /* ARB extension opcodes */
  2470.  
  2471. /*  1. GL_ARB_multitexture - see GL 1.2 opcodes */
  2472. /*  5. GL_ARB_multisample - see GL 1.3 opcodes */
  2473. /* 12. GL_ARB_texture_compression - see GL 1.3 opcodes */
  2474. /* 14. GL_ARB_point_parameters - see GL 1.4 opcodees */
  2475.  
  2476. /* 15. GL_ARB_vertex_blend */
  2477. #define X_GLrop_WeightbvARB                  220
  2478. #define X_GLrop_WeightubvARB                 221
  2479. #define X_GLrop_WeightsvARB                  222
  2480. #define X_GLrop_WeightusvARB                 223
  2481. #define X_GLrop_WeightivARB                  224
  2482. #define X_GLrop_WeightuivARB                 225
  2483. #define X_GLrop_VertexBlendARB               226
  2484. #define X_GLrop_WeightfvARB                  227
  2485. #define X_GLrop_WeightdvARB                  228
  2486.  
  2487. /* 16. GL_ARB_matrix_palette */
  2488. /* XXX opcodes not defined in the spec */
  2489.  
  2490. /* 25. GL_ARB_window_pos - see GL 1.4 opcodes */
  2491.  
  2492. /* 26. GL_ARB_vertex_program */
  2493. #define X_GLrop_BindProgramARB              4180
  2494. #define X_GLrop_ProgramEnvParameter4fvARB   4184
  2495. #define X_GLrop_ProgramEnvParameter4dvARB   4185
  2496. #define X_GLrop_VertexAttrib1svARB          4189
  2497. #define X_GLrop_VertexAttrib2svARB          4190
  2498. #define X_GLrop_VertexAttrib3svARB          4191
  2499. #define X_GLrop_VertexAttrib4svARB          4192
  2500. #define X_GLrop_VertexAttrib1fvARB          4193
  2501. #define X_GLrop_VertexAttrib2fvARB          4194
  2502. #define X_GLrop_VertexAttrib3fvARB          4195
  2503. #define X_GLrop_VertexAttrib4fvARB          4196
  2504. #define X_GLrop_VertexAttrib1dvARB          4197
  2505. #define X_GLrop_VertexAttrib2dvARB          4198
  2506. #define X_GLrop_VertexAttrib3dvARB          4199
  2507. #define X_GLrop_ProgramLocalParameter4fvARB 4215
  2508. #define X_GLrop_ProgramLocalParameter4dvARB 4216
  2509. #define X_GLrop_ProgramStringARB            4217
  2510. #define X_GLrop_VertexAttrib4dvARB          4200
  2511. #define X_GLrop_VertexAttrib4NubvARB        4201
  2512. #define X_GLrop_VertexAttrib4bvARB          4230
  2513. #define X_GLrop_VertexAttrib4ivARB          4231
  2514. #define X_GLrop_VertexAttrib4ubvARB         4232
  2515. #define X_GLrop_VertexAttrib4usvARB         4233
  2516. #define X_GLrop_VertexAttrib4uivARB         4234
  2517. #define X_GLrop_VertexAttrib4NbvARB         4235
  2518. #define X_GLrop_VertexAttrib4NsvARB         4236
  2519. #define X_GLrop_VertexAttrib4NivARB         4237
  2520. #define X_GLrop_VertexAttrib4NusvARB        4238
  2521. #define X_GLrop_VertexAttrib4NuivARB        4239
  2522.  
  2523. /* 27. GL_ARB_fragment_program - see GL_ARB_vertex_program opcodes */
  2524.  
  2525. /* 29. GL_ARB_occlusion_query */
  2526. /* XXX opcodes not defined in the spec */
  2527.  
  2528.  
  2529. /* New extension opcodes */
  2530.  
  2531. /* 145. GL_EXT_secondary_color - see GL 1.4 opcodes */
  2532.  
  2533. /* 188. GL_EXT_vertex_weighting */
  2534. #define X_GLrop_VertexWeightfvEXT           4135
  2535.  
  2536. /* 191. GL_NV_register_combiners */
  2537. #define X_GLrop_CombinerParameterfNV        4136
  2538. #define X_GLrop_CombinerParameterfvNV       4137
  2539. #define X_GLrop_CombinerParameteriNV        4138
  2540. #define X_GLrop_CombinerParameterivNV       4139
  2541. #define X_GLrop_CombinerInputNV             4140
  2542. #define X_GLrop_CombinerOutputNV            4141
  2543. #define X_GLrop_FinalCombinerInputNV        4142
  2544.  
  2545. /* 222. GL_NV_fence */
  2546. #define X_GLrop_SetFenceNV                  4143
  2547. #define X_GLrop_FinishFenceNV               4144
  2548.  
  2549. /* 227. GL_NV_register_combiners2 */
  2550. /* XXX opcodes not defined in the spec */
  2551.  
  2552. /* 233. GL_NV_vertex_program - see also GL_ARB_vertex_program opcodes */
  2553. #define X_GLrop_ExecuteProgramNV            4181
  2554. #define X_GLrop_RequestResidentProgramsNV   4182
  2555. #define X_GLrop_LoadProgamNV                4183
  2556. #define X_GLrop_ProgramParameters4fvNV      4186
  2557. #define X_GLrop_ProgramParameters4dvNV      4187
  2558. #define X_GLrop_TrackMatrixNV               4188
  2559. #define X_GLrop_VertexAttribs1svNV          4202
  2560. #define X_GLrop_VertexAttribs2svNV          4203
  2561. #define X_GLrop_VertexAttribs3svNV          4204
  2562. #define X_GLrop_VertexAttribs4svNV          4205
  2563. #define X_GLrop_VertexAttribs1fvNV          4206
  2564. #define X_GLrop_VertexAttribs2fvNV          4207
  2565. #define X_GLrop_VertexAttribs3fvNV          4208
  2566. #define X_GLrop_VertexAttribs4fvNV          4209
  2567. #define X_GLrop_VertexAttribs1dvNV          4210
  2568. #define X_GLrop_VertexAttribs2dvNV          4211
  2569. #define X_GLrop_VertexAttribs3dvNV          4212
  2570. #define X_GLrop_VertexAttribs4dvNV          4213
  2571. #define X_GLrop_VertexAttribs4ubvNV         4214
  2572.  
  2573. /* 261. GL_NV_occlusion_query */
  2574. /* XXX opcodes not defined in the spec */
  2575.  
  2576. /* 262. GL_NV_point_sprite - see GL 1.4 opcodes */
  2577.  
  2578. /* 268. GL_EXT_stencil_two_side */
  2579. #define X_GLrop_ActiveStencilFaceEXT        4220
  2580.  
  2581. /* 282. GL_NV_fragment_program - see also GL_NV_vertex_program and GL_ARB_vertex_program opcodes */
  2582. #define X_GLrop_ProgramNamedParameter4fvNV  4218
  2583. #define X_GLrop_ProgramNamedParameter4dvNV  4219
  2584.  
  2585. /* 285. GL_NV_primitive_restart */
  2586. /* XXX opcodes not defined in the spec */
  2587.  
  2588. /* 297. GL_EXT_depth_bounds_test */
  2589. #define X_GLrop_DepthBoundsEXT              4229
  2590.  
  2591. /* 299. GL_EXT_blend_equation_separate */
  2592. #define X_GLrop_BlendEquationSeparateEXT    4228
  2593.  
  2594. /* 310. GL_EXT_framebuffer_object */
  2595. #define X_GLvop_IsRenderbufferEXT                      1422
  2596. #define X_GLvop_GenRenderbuffersEXT                    1423
  2597. #define X_GLvop_GetRenderbufferParameterivEXT          1424
  2598. #define X_GLvop_IsFramebufferEXT                       1425
  2599. #define X_GLvop_GenFramebuffersEXT                     1426
  2600. #define X_GLvop_CheckFramebufferStatusEXT              1427
  2601. #define X_GLvop_GetFramebufferAttachmentParameterivEXT 1428
  2602.  
  2603. #endif /* _GLX_glxproto_h_ */
  2604.